在Clion的IDE中指定命令行参数

最近在linux上使用Clion这个C++ IDE,感觉很好,JetBrain的产品都很不错。

但是在跑简单例子的时候,使用到thread对象,直接build会出错

报错是:

thread::thread<void (&)(int), int>(void (&)(int), int&&)’:pthread_create’未定义的引用

就是说头文件的函数原型已经找到了,但是函数实现还没有找到,需要动态链接到pthread库上,然后就试着去run里面的edit_configure里面的cmdline parameter中手动添加-pthread参数

但是仍然无效,就很纳闷是什么原因。

后来发现在project目录下有个CmakeList文件,原来使用的是CMake编译器,所以应该在CMakeList文件中来指定命令行参数

比如:

cmake_minimum_required(VERSION 3.3)
project(C__NewFeature)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread")

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

然后重新build就成功了。

一般编译命令指定动态库时,程序会在系统默认的动态库路径去寻找,如果动态库不在指定路径上,需要手动指定路径

通常是 -L /usr/local/lib -pthread这样先指定路径,后指定库

但是在CMakeList中可以将二者分开,路径在link_directories("/usr/local/lib")中指定好

在编译命令参数中直接使用相应的库即可,比如:

cmake_minimum_required(VERSION 3.3)
project(BoostTest)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lboost_coroutine -lboost_context -lboost_regex")

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

link_directories("/usr/local/lib")

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

在一个.net sln中包含多个project,project引用同一个dll导致的错误

在一个.net sln中包含多个project,其中四个project应用了同一个.net assamply:Lucene.Net。这四个project其中一个...

1747
来自专栏逆向技术

C语言第十二讲,文件操作.

在操作系统中,我们的文档都称为文件.操作系统也为我们提供了接口进行操作.不同语言都是使用的相同的接口,只不过封装的上层接口不一样

780
来自专栏技术专栏

Scala入门与进阶(二)- Scala入门

953
来自专栏java 成神之路

InetAddress 解析

2808
来自专栏惨绿少年

linux的特殊符号与正则表达式

第1章 linux的特殊符号 1.1 通配符 * {} 1.1.1 含义 方便查找文件 通配符是用来找文件名字的。 1.1.2  * 通过find 命令找以 ...

1830
来自专栏Vamei实验室

C编译: 使用gdb调试

gdb是the GNU Debugger的简称。它是一款UNIX平台的调试器(debugger),可用于为C, C++, Objective-C, Java, ...

1697
来自专栏微服务生态

Flume-NG源码分析-整体结构及配置载入分析

终于开始Flume源码的分析研究工作了,我也是边学边和大家分享,内容上难免有不足之处,望大家见谅。

614
来自专栏MelonTeam专栏

What's New in LLVM 9

导语 :这绝不仅仅是一篇 WWDC 2017 Session 411 学习笔记。除了有关 LLVM 9.0 的新特性之外,还有关于静态分析器和 Clang 5 ...

22610
来自专栏求索之路

Java/Android阿里面试JVM部分理解

最近选择性的看了深入理解java虚拟机这本书,挑了几章对于深入android开发有帮助的章节,大厂面试android或者java的时候也可能会问到,所以大家有...

3327
来自专栏IT开发技术与工作效率

VBA非登陆下载Excel文件并处理例子

1064

扫描关注云+社区