MSVC編譯KDChart過程
一、下載KDChart源文件
GitHub源文件
查看文件夾里的INSTALL.txt,可以看到需要CMake編譯。
中文版
以下是使用 CMake 構建系統安裝 KD Chart 的說明。
需要 CMake 3.3 或更高版本。Qt 版本支持:* KD Chart 2.5.0 及以下版本需要 Qt4* KD Chart 2.5.1 至 2.7.2 版本需要 Qt4 到 Qt5.15* KD Chart 2.8.x 移除了 Qt4 支持(即僅支持 Qt5)* KD Chart 3.0 及以上版本需要 Qt5.15.0 到 Qt6.x(如果需要舊版 Qt5 支持,請聯系 info@kdab.com)另請注意,使用 Qt6 構建需要支持 C++17 的編譯器,
而使用 Qt5 構建支持 C++11 即可。請查看 CMakeLists.txt 文件頂部的注釋,
了解可傳遞給 cmake 的可用配置選項。安裝目錄在 Windows 上默認為 c:\KDAB\KDChart-<version>,
在非 Windows 系統上默認為 /usr/local/KDAB/KDChart-<version>。 你可以通過向 cmake 傳遞選項 -DCMAKE_INSTALL_PREFIX=/install/path 來更改此位置。1) 從 KD Chart 安裝的頂級目錄創建一個構建目錄:mkdir build然后進入該構建目錄:cd build2) 現在根據構建類型運行以下 'cmake' 命令之一:cmake -DCMAKE_BUILD_TYPE=Debug ..cmake -DCMAKE_BUILD_TYPE=Release ..cmake -DKDChart_STATIC=True -DCMAKE_BUILD_TYPE=Debug ..cmake -DKDChart_STATIC=True -DCMAKE_BUILD_TYPE=Release ..若要指定安裝位置,可參考以下示例:cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=C:/kdchart ..cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/opt/kdchart ..3) Unix設置 LD_LIBRARY_PATH 指向 KD Chart 安裝的 lib 目錄。如果你還沒有設置 LD_LIBRARY_PATH,可在終端中運行:% LD_LIBRARY_PATH=/path/to/kdchart/lib:$LD_LIBRARY_PATH% export LD_LIBRARY_PATH必須將上述命令添加到你的 .bashrc 或類似文件中才能永久生效。當然,你也可以在使用 KD Reports 構建軟件之前在 shell 中運行這些命令,但這種情況下設置僅在當前 shell 中有效。4) MacOS操作步驟同上,但使用 DYLD_LIBRARY_PATH 代替 LD_LIBRARY_PATH5) Windows若要運行可執行文件,將 KD Chart dll 文件所在路徑(kdchart\bin)添加到 PATH 環境變量中。例如:set PATH=\path\to\kdchart\bin;%PATH%若要進行開發,將 KD Chart lib 文件所在路徑(kdchart\lib)添加到 LIB 環境變量中。例如:set LIB=\path\to\kdchart\lib;%LIB%6) 輸入以下命令構建所有內容:從 KD Chart 頂級目錄運行:% make # Unix, Mac% nmake # Windows7) (可選)安裝 KD Chart:從 KD Reports 頂級目錄運行:% make install # Unix, Mac% nmake install # Windows這會將必要的文件復制到安裝路徑的子目錄中:對于 Unix/Linux、Mac:/usr/local/KDAB/KDChart-VERSION/對于 Windows:C:\KDAB\KDChart-VERSION\8) 查看示例應用程序。它們將幫助你開始使用 KD Chart。== 測試 ==
若要構建測試工具,請向 CMake 傳遞 -DKDChart_TESTS=true 參數,如下所示:% cmake -DKDChart_TESTS=true然后運行 'make test' 來執行單元測試。== 使用 ==
在你的 CMake 項目中添加以下內容find_package(KDChart CONFIG REQUIRED)如果使用 Qt6,則添加find_package(KDChart-qt6 CONFIG REQUIRED)并鏈接到導入目標 KDChart::kdchart。
這就是你需要做的全部操作(導入目標還會包含頭文件目錄)你可能還需要根據 KDChart 的安裝位置設置 CMAKE_PREFIX_PATH 環境變量。
二、下載安裝CMake
注意:
如果使用Qt6.x 編譯,可以不用安裝,Qt6自帶CMake,還不用配置!(直接看 Qt6.x 編譯KDChart `)
https://cmake.org/download/
三、編譯
1.填寫源文件目錄和build文件夾目錄
2.Configure配置項目工程
3.等待報錯
1.Could not find a package configuration file provided by “Qt6”
移除KDChart_QT6選擇
自定義輸出目錄(注意C盤有權限問題)
根據需求可以構建例子
記得此次點擊
Configure
2. string no output variable specified 未指定輸出變量
src/CMakeList.txt 491行
情況一:CMAKE 里面找
CMAKE_BUILD_TYPE
情況二:如果沒有找到
Add Entry
沒有找到則添加
輸入需要構建模式
記得此次點擊
Configure
還有錯看:
1.KDChart3.0編譯過程-使用QT5.15及QT6.x編譯
2.KDChart2.8編譯過程-使用VS+CMake-MSVC2017
4.生成
1. 配置Generate
2. 打開.sln
或者 使用
Open Project
右鍵ALL_BUILD->生成
堆空間不足錯誤:多生成幾次,或者查
“EntryDialog::~EntryDialog”: 不能定義編譯器生成的特殊成員函數(必須首先在類中聲明)
添加聲明
常量中有換行符
使用SmartCharsetConverter批量轉換
一般不會出現這種情況,我的是因為使用AI添加的中文注釋
3.ALL_BUILD生成沒問題,右鍵INSTALL->生成
NSTALL失敗
CMake Error at src/cmake_install.cmake:36 (file):
file INSTALL cannot find
/build/src/KDChart/kdgantt.h": No error.
error MSB3073: 命令“setlocal
error MSB3073: E:\WorkTool\CMake-4.0.0\bin\cmake.exe -DBUILD_TYPE=Debug -P cmake_install.cmake
error MSB3073: if %errorlevel% neq 0 goto :cmEnd
error MSB3073: :cmEnd
error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
error MSB3073: :cmErrorLevel
error MSB3073: exit /b %1
error MSB3073: :cmDone
error MSB3073: if %errorlevel% neq 0 goto :VCEnd
error MSB3073: :VCEnd”已退出,代碼為 1。
解決方案在src/CMakeLists.txt 的 196 行 添加
# Adding the following line of code will solve the “file INSTALL cannot find build/src/KDChart/kdgantt.h” problem.
configure_file("${CMAKE_CURRENT_BINARY_DIR}/KDChart/KDGantt" "${CMAKE_CURRENT_BINARY_DIR}/KDChart/kdgantt.h" COPYONLY)
保存后,直接右鍵INSTALL->生成
寫文章截止時間是2025-07-30 22:00:00
最新解決方案請查看
5.測試
這最后有測試例子教程
在build/bin/Debug挑一個
使用 windeployqt.exe xxxx.exe 打包一下庫
最新解決方案請查看
5.測試
這最后有測試例子教程
在build/bin/Debug挑一個
使用 windeployqt.exe xxxx.exe 打包一下庫