cmake常见操作

2019-12-23  本文已影响0人  生活简单些

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)设置编译选项, 常见编译选项列表:

  1. -w: 关闭编译时的警告,也就是编译后不显示任何warning,因为有时在编译之后编译器会显示一些例如数据转换之类的警告,这些警告是我们平时可以忽略的。
  2. -Wall: 编译后显示所有警告。
  3. -W: 类似-Wall,会显示警告,但是只显示编译器认为会出现错误的警告。
上一篇 下一篇

猜你喜欢

热点阅读