在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 条评论
登录 后参与评论

相关文章

来自专栏Hadoop数据仓库

HAWQ技术解析(九) —— 外部数据

        HAWQ不但可以读写自身系统中的表,而且能够访问HDFS、Hive、HBase等外部系统的数据。这是通过一个名为PXF的扩展框架实现的。大部分外...

19110
来自专栏Java后端技术

log4j介绍以及使用教程

  Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接 口服务 器、NT的...

694
来自专栏个人分享

Spark Job的提交与task本地化分析(源码阅读八)

  我们又都知道,Spark中任务的处理也要考虑数据的本地性(locality),Spark目前支持PROCESS_LOCAL(本地进程)、NODE_LOCAL...

662
来自专栏偏前端工程师的驿站

.Net魔法堂:log4net详解

一、作用                              提供一个记录日志的框架,可以将日志信息记录到文件、控制台、Windows事件日志和数据库(M...

1885
来自专栏JetpropelledSnake

Python入门之logging模块

本章目录:     一、logging模块简介     二、logging模块的使用     三、通过JSON或者YMAL文件配置logging模块 ====...

31212
来自专栏AhDung

慎用Assembly.LoadFile()和Assembly.LoadFrom()

经测这俩方法会锁住文件,导致程序运行期间无法对load过的程序集文件进行更名/删除/覆盖等等操作,考虑用Assembly.Load()文件字节组替代:

744
来自专栏后端云

resize失败原因调查

对一个vm做resize,即从一个小的flavor换一个大的flavor,没有成功

622
来自专栏杨建荣的学习笔记

Oracle升级中的参数补充(r9笔记第2天)

数据库升级的时候有一个很重要的环节就是数据库参数审核,对于数据库参数还是有很多的门道,其中一种就是对于过期参数的处理。 我们可以使用如下的SQL来得到一个基本...

2889
来自专栏陈树义

MongoDb 快速入门教程

MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 它是可扩展的高性能数据存储解决方案,经常被用于...

5114
来自专栏冷冷

【springboot】 springboot 整合mybatis-plus

springboot整和mybatis-plus 整合步骤 1.pom.xml 添加mp依赖 <!-- mybatis-plus begin --> <depe...

3639

扫码关注云+社区