我想在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