c++ - 如何在 CMake 中添加 "-l"(ell) 编译器标志

标签 c++ cmake clion

在 Ubuntu 16 上工作

我使用 g++ main.cpp -lpq 命令编译我的小项目。现在我使用 Clion 并想做与 g++ 相同的事情。但是我无法在 cmake 文件中添加编译器标志并出现编译错误。

cmake_minimum_required(VERSION 3.5.1)
project(day_g)

set(CMAKE_CXX_FLAGS "-lpq")

add_definitions(-lpq)

message("CMAKE_CXX_FLAGS is ${CMAKE_CXX_FLAGS}")

set(CMAKE_CXX_STANDARD 11)

set(SOURCE_FILES main.cpp)
add_executable(day_g ${SOURCE_FILES})

此外,我只运行 cmake 文件并获得带有 -lpq 标志的 CMAKE_CXX_FLAGS

CMAKE_CXX_FLAGS is -lpq
-- Configuring done
-- Generating done

如何正确地将编译器标志添加到 cmake 文件?

最佳答案

标记 -l 用于链接器,不适用于编译器。此标志用于与库的链接。 CMake 有特殊命令 target_link_libraries为此目的:

target_link_libraries(day_g pq)

关于c++ - 如何在 CMake 中添加 "-l"(ell) 编译器标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43136418/

相关文章:

c++ - 断点不会影响CLion

c++ - 子目录中的 CMake 共享库

c++ - 为枚举类重载强制转换运算符

c++ - 为什么指向char的指针仅获得第一个字符?

c++ - 访问冲突读取位置 0x00000000。 'new' 关键字?

c++ - 从 CMake 生成的 Boost 序列化 : Linker errors in XCode 5 project,(带最小完整示例)

cmake - 从 CMake 脚本构建 doxygen

c++ - 带字符间距的字符串

c++ - CMake 将不同子目录中的静态库链接到一个静态库中

c++ - C++11初始化变量时{}和=的区别