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 文件并得到 CMAKE_CXX_FLAGS带有 -lpq 标志。

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/72331577/

相关文章:

c++ - 如何在按下 "stop"按钮时捕获 clion 中捆绑的 GDB 发出的信号?

c++ - 如何将输入 'three four + five six =' 转换为 '34+56' ?

c++ - WSL 看不到环境变量

c++ - 如何在 C++ 中的字符串文字中混合十六进制字符和普通字符?

c++ - 如何检查每个头文件是否包含所需的包含文件?

eclipse - CMAKE 单独的链接器和编译器标志

c++ - CMake 安装(子目录中的目标)

c++ - getline 超过指定数量

c++ - 如何与另一个应用程序共享 HGLOBAL?

c++ - 如何在 C++ 中检查邮件服务器(SSL、SMTP 端口 465)的状态