FAQ · Wiki · CMake / Community · GitLab
1. 使用环境变量
CC=/usr/bin/gcc-4.2 CXX=/usr/bin/g++-4.2 cmake -G "Your Generator" path/to/your/source
2.
use cmake -D
cmake -G "Your Generator" -D CMAKE_C_COMPILER=gcc-4.2 -D CMAKE_CXX_COMPILER=g++-4.2 path/to/your/source
3 (avoid): use set()
set(CMAKE_C_COMPILER "gcc-4.2") set(CMAKE_CXX_COMPILER "/usr/bin/g++-4.2") project("YourProjectName")
-----------------------
最简单的cmake命令
cmake ..
make
---
Android上用到的cmake命令通常如下
camke .. -DCMAKE_TOOLCHAIN_FILE=..... -DANDROID_ABI=armeabi-v7a(arm64-v8a) -DANDROID_API_LEVEL=29
-----
add_library(target_lib*** INTERFACE)
add_executable(target_exe*** file.c)
target_link_directories(target*** PRIVATE path) 库文件路径
target_include_directories(target*** PRIVATE path) 头文件路径
target_compile_options(target*** PRIVATE cflags)
target_link_libraries(target*** PRIVATE lib1 lib2 lib3 -lm -ldl) 要链接的库名
add_subirectory(path EXCLUDE_FROM_ALL) 加上在该目录下的cmakeLists.txt,make时也会执行
加上asan
set (CMAKE_C_FLAGS_DEBUG "$CMAKE_C_FLAGS_DEBUG} -fsanitize=address -g -fno-omit-frame-pointer")
set (CMAKE_SHARED_LINKER_FLAG_DEBUG "$CMAKE_SHARED_LINKER_FLAG_DEBUG} -fsanitize=address -g -fno-omit-frame-pointer")
set (CMAKE_EXE_LINKER_FLAGS "$CMAKE_EXE_LINKER_FLAGS} -fsanitize=address -g -fno-omit-frame-pointer")