1.头文件
include存放的是编译库文件生成的头文件集合,比如curl目录,目录中都是.h文件,添加方式如下:
2.库文件
lib是存放库文件的目录,形如libxxx.so或libxxx.a形式的文件,添加方式如下:
3.引用
库的引用可以直接取libxxx.a中的xxx部分,如下的curl、ssl、crypto就是:
1.编译报错“undefined reference to `pthread_create'”
解决办法:引入pthread库
2.编译报错“libcrypto.a undefined reference to symbol 'dlclose'”
解决办法: add -ldl after libcrypto and libssl in your link command.
原文地址: https://justchen.com/2017/02/27/cmake%E7%BC%96%E8%AF%91%E7%BC%BA%E5%A4%B1pthread_create%E7%AD%89thread%E5%BA%93%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88.html
在使用cmake来编译项目时,明明在CMAKE_CXX_FLAGS项中设置了-lpthread项目,在运行生成makefile时确实也看到了有-lpthread,但还是报错:对‘pthread_create’未定义的引用,简直是日了狗了…
后来google到了答案,如果是cmake项目需要修改Cmakefile.txt,增加以下内容
果然,加上后就解决问题了,makefile,只是把-lpthread移到了最后,如果只是动CMAKE_CXX_FLAGS项-lpthread是紧根着g++后,也许这样不起作用….
虽然include了头文件,但是编译时就报错。解决方法如下:
看到截图的最后一行,已经说明了需要link pthread库,那我们就可以配置了。
问题完美解决
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)