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

Met*_*dio 6 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})
Run Code Online (Sandbox Code Playgroud)

另外,我只运行cmake文件并CMAKE_CXX_FLAGS使用-lpq标志.

CMAKE_CXX_FLAGS is -lpq
-- Configuring done
-- Generating done
Run Code Online (Sandbox Code Playgroud)

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

Tsy*_*rev 8

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

target_link_libraries(day_g pq)
Run Code Online (Sandbox Code Playgroud)