如何添加“-l"(ell) CMake 中的编译器标志 [英] How to add "-l" (ell) compiler flag in CMake
问题描述
在 Ubuntu 16 上工作
Work on Ubuntu 16
我使用 g++ main.cpp -lpq
命令编译我的小项目.现在我使用 Clion 并且想要做与 g++
相同的事情.但是我不能在 cmake 文件中添加编译器标志并得到编译错误.
I used g++ main.cpp -lpq
command for compiler my small project. Now I use Clion and wanna do same what I do with g++
. But I can't add compiler flags in cmake file and get compile error.
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
.
Also I run only cmake file and get CMAKE_CXX_FLAGS
with -lpq flag.
CMAKE_CXX_FLAGS is -lpq
-- Configuring done
-- Generating done
如何正确地将编译器标志添加到 cmake 文件中?
How properly add compiler flags to cmake file?
推荐答案
Flag -l
用于链接器,而不是编译器.此标志用于与库的链接.CMake 有特殊命令 target_link_libraries 用于此目的:
Flag -l
is for linker, not for compiler. This flag is used for link with libraries. CMake has special command target_link_libraries for that purpose:
target_link_libraries(day_g pq)
这篇关于如何添加“-l"(ell) CMake 中的编译器标志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!