我想在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
。
有没有办法做到这一点?
答案 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从正确的路径中选择它。“
我不认为这是理想的,但确实有效。谢谢谢尔盖。