1. 多系统区分
if(WIN32)
# todo: windows action
elseif(APPLE)
# todo: mac action
elseif(UNIX)
# todo: linux action
endif()
1.1 windows下x64和x86区分
if(WINDOWS)
if(CMAKE_CL_64)
target_link_libraries (BarcodeReader "DBRx64")
else()
target_link_libraries (BarcodeReader "DBRx86")
endif()
else()
target_link_libraries (BarcodeReader "DynamsoftBarcodeReader")
endif()
2. 将pthread作为默认线程库
# add pthread library
find_package (Threads)
target_link_libraries(smt-logger ${CMAKE_THREAD_LIBS_INIT})
由于pthread不是linux的默认线程库,需要手动制定。
3. 设置构建类型
#set(CMAKE_BUILD_TYPE "Release")
#set(CMAKE_BUILD_TYPE "Debug")
#set(CMAKE_BUILD_TYPE "MinSizeRel")
#set(CMAKE_BUILD_TYPE "RelWithDebInfo")
4. 编译选项
add_definitions(-Wall)
可以通过add_definitions(xxx)
设置编译选项, 常见编译选项列表:
- -w: 关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的。
- -Wall: 编译后显示所有警告。
- -W: 类似-Wall,会显示警告,但是只显示编译器认为会出现错误的警告。
网友评论