Ali*_*Ali 6 cmake visual-studio
我有这个简单的CMake文件
cmake_minimum_required(VERSION 2.8)
project(test)
set(SOURCES source.cpp)
add_executable(test ${SOURCES})
Run Code Online (Sandbox Code Playgroud)
其中source.cpp是一个简单的hello world程序.然后我生成Visual Studio项目
cmake -G"Visual Studio 14 2015" ..\Sources
Run Code Online (Sandbox Code Playgroud)
生成的Visual Studio项目具有以下库Configuration Properties > Linker > Input > Additional Dependencies:
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
comdlg32.lib
advapi32.lib
Run Code Online (Sandbox Code Playgroud)
如果我删除这些库,我仍然可以成功构建并运行hello world.
为什么CMake会添加所有这些库,我可以做些什么来在我的项目中没有它们?
CMAKE_CXX_STANDARD_LIBRARIES_INIT正如 @Vertexwahn 所评论的,这些是 CMake中定义的默认值CMakeCXXInformation.cmake。
我只是想添加一个简单的宏AdditionalDependencies替换:
cmake_minimum_required(VERSION 3.0)
file(
WRITE "${CMAKE_BINARY_DIR}/MakeRulesOverwrite.cmake"
[=[
if (MSVC)
set(CMAKE_CXX_STANDARD_LIBRARIES_INIT "%(AdditionalDependencies)")
endif()
]=]
)
set(CMAKE_USER_MAKE_RULES_OVERRIDE "${CMAKE_BINARY_DIR}/MakeRulesOverwrite.cmake")
project(test)
...
Run Code Online (Sandbox Code Playgroud)
参考
CMAKE_USER_MAKE_RULES_OVERRIDE| 归档时间: |
|
| 查看次数: |
689 次 |
| 最近记录: |