pau*_*ulm 21 cmake visual-studio
我有一个使用cmake的项目,一个目标设置为仅使用MSVC构建:
if (MSVC)
add_library(test SHARED source.cpp)
endif()
Run Code Online (Sandbox Code Playgroud)
现在另一个问题是这个目标只针对MSVC 32bit.那么如何检测到生成器是MSVC64并跳过此目标?
was*_*ful 30
检查是否为64位体系结构生成的常用方法是测试CMAKE_SIZEOF_VOID_P:
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
# 64 bits
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
# 32 bits
endif()
Run Code Online (Sandbox Code Playgroud)
Flo*_*ian 20
有几种方法 - 也由CMake本身使用 - 将检查"not 64Bit":
if(NOT "${CMAKE_GENERATOR}" MATCHES "(Win64|IA64)")
...
endif()
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4")
...
endif()
if(NOT CMAKE_CL_64)
...
endif()
Run Code Online (Sandbox Code Playgroud)
参考
| 归档时间: |
|
| 查看次数: |
13404 次 |
| 最近记录: |