cmake 如何写windows和linux都适用的
时间: 2023-11-22 09:56:22 浏览: 65
为了使 CMake 项目能够在 Windows 和 Linux 上编译,可以采用以下方法:
1. 使用跨平台的 CMake 命令和语法。
2. 针对不同平台,使用条件语句来选择不同的编译器、库和其他依赖项。
3. 避免使用基于操作系统的路径和文件分隔符,而是使用 CMake 提供的跨平台路径处理函数。
示例 CMakeLists.txt 文件:
```
cmake_minimum_required(VERSION 3.10)
project(MyProject)
if(WIN32)
set(CMAKE_CXX_COMPILER "C:/path/to/MSVC/bin/cl.exe")
set(CMAKE_C_COMPILER "C:/path/to/MSVC/bin/cl.exe")
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
elseif(UNIX)
set(CMAKE_CXX_COMPILER "/usr/bin/g++")
set(CMAKE_C_COMPILER "/usr/bin/gcc")
endif()
set(SOURCES src/main.cpp src/foo.cpp)
add_executable(myapp ${SOURCES})
target_include_directories(myapp PUBLIC include)
if(WIN32)
target_link_libraries(myapp PRIVATE mylib.lib)
elseif(UNIX)
target_link_libraries(myapp PRIVATE mylib.so)
endif()
```
在此示例中,我们使用了条件语句来选择不同的编译器和库,避免了基于操作系统的路径和文件分隔符,同时使用 CMake 提供的跨平台路径处理函数。这样,我们就可以在 Windows 和 Linux 上编译同一个项目了。
阅读全文