CMake在64位平台上找到32位GDI +

时间:2015-10-14 12:02:15

标签: windows cmake

我想在32位和64位窗口上构建一个需要GDI +的程序。 我使用的是CMake 3.3.2,Windows 10 64位,Visual Studio 2015。 作为一个小例子,我有这个CMakeLists.txt:

cmake_minimum_required(VERSION 3.3)
find_library(GDIP gdiplus)

我在构建子目录中以

运行它
cmake ..

cmake -A x64 ..

如果我比较两次运行的CMakeCache.txt,我看到它确实选择了32位或64位选项(例如CMAKE_LINKER),但它在两种情况下都找到了32位gdiplus.lib < / p>

//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

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

我在CMake邮件列表上询问过。我感谢Sergei Nikulov的回答: http://public.kitware.com/pipermail/cmake/2015-October/061806.html

  

一个想法,我是如何为odbc lib创建的解决方法:   删除find_library(GDIPLUS_LIBRARY NAMES libgdiplus gdiplus)   和   set(GDIPLUS_LIBRARY gdiplus)   或其他专有名称。   Visual Studio将根据目标x86或x86_64从正确的路径中选择它。“

我不认为这是理想的,但确实有效。谢谢谢尔盖。