当我像这样编译时,我的代码可以在终端中正确运行
g++ -g -O2 -std=c++11 -I/usr/local/include -L/usr/local/lib main.cpp -lboost_system -lboost_filesystem -fopenmp -lpthread -o main -lz
但是当我从CLion运行它时,它给出了很多错误,特别是链接
Undefined reference to gzread/gzclose/gzopen
我认为这是由于在编译时未指定编译选项。
如何在CLion中设置编译选项?
编辑
CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project(Partition)
set(CMAKE_CXX_STANDARD 14)
add_executable(Partition main.cpp kseq.h)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++1y -O2 -std=c++11 -I/usr/local/include -L/usr/local/lib -lboost_system -lboost_filesystem -fopenmp -lpthread -lz")
答案 0 :(得分:0)
不是编译步骤失败,而是链接步骤。
命令行字符串的-l
部分是链接选项,并列出了要将程序链接到的库。
在每个-l
之后列出的名称必须使用target_link_libraries(Partition boost_system ...)