我想在32位和64位窗口上構建一個需要GDI +的程序。 我使用的CMake 3.3.2的Windows 10的64位時,Visual Studio 2015年 作爲最小的情況下,我有這樣的CMakeLists.txt:CMake在64位平臺上查找32位GDI +
cmake_minimum_required(VERSION 3.3)
find_library(GDIP gdiplus)
我在構建子目錄運行此作爲
cmake ..
或
cmake -A x64 ..
如果我比較CMakeCache.txt兩種運行我看到它肯定回升32位或64位的選項(如CMAKE_LINKER
),但它已經找到了32位gdiplus.lib
在這兩種情況下
//Path to a library.
GDIP:FILEPATH=C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x86/gdiplus.lib
應該找到64位版本C:/Program Files (x86)/Windows Kits/8.1/Lib/winv6.3/um/x64/gdiplus.lib
代替。
有沒有辦法解決這個問題?
可能,路過'-DCMAKE_LIBRARY_ARCHITECTURE = 64 'cmake應該可以工作,現在不能檢查, – Tsyvarev
@Tsyvarev沒有任何效果,對不起,你知道是否可以打印'find_library'將檢查的路徑列表嗎? –
描述了'find_library'的完整搜索算法在[文檔](https://cmake.org/cmake/help/v3.3/command/find_library.html)。現在我明白了爲什麼我用'CMAKE_LIBRARY_ARCHITECTURE'變量的方式不適合你:它只適用於'** lib **//'案件。您可以嘗試傳遞'-DCMAKE_LIBRARY_PATH = C:/ Program Files(x86)/ Windows Kits/8.1/Lib/winv6.3/um/x86'。作爲最後的手段,您可以手動將GPID變量設置爲所需的庫。 –
Tsyvarev