欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux中编译带clock_gettime函数的代码,提示undefined reference to 'clock_gettime'

程序员文章站 2024-02-26 19:48:58
...

今天在Linux服务器上提交的C++代码中调用了clock_gettime,编译时报错如下:

mkdir -p dist/Debug/GNU-Linux
g++ -o dist/Debug/GNU-Linux/zceapi_linux_demo build/Debug/GNU-Linux/APKpkgTofile.o build/Debug/GNU-Linux/CallBack.o build/Debug/GNU-Linux/Demo.o -W1,-rpath,'/usr/lib' -lZCEFTDAPI -ldl
build/Debug/GNU-Linux/Demo.o: In Funcion 'main':
Demo.cpp:(.text+0x23):undefined reference to 'clock_gettime'
Demo.cpp:(.text+0x54):undefined reference to 'clock_gettime'
collect2:error: ld returned 1 exit status

网上查找原因,提示clock_gettime编译时需要加入-lrt。考虑的解决方法是:

一、临时解决

根据编译的提示,进入到相应的目录中,直接将g++的编译命令后面加上-lrt,编译成功执行。如下:

g++ -o dist/Debug/GNU-Linux/zceapi_linux_demo build/Debug/GNU-Linux/APKpkgTofile.o build/Debug/GNU-Linux/CallBack.o build/Debug/GNU-Linux/Demo.o -W1,-rpath,'/usr/lib' -lZCEFTDAPI -ldl -lrt

 

二、修改netbean配置项

netbean中选中该项目,右键选择【设置配置】---【定制】。弹出的项目属性对话框中选择【构建】--【链接器】,右边显示框中选择【编译行】--【其他选项】中加入-lrt,如下:

Linux中编译带clock_gettime函数的代码,提示undefined reference to 'clock_gettime'

接下来在项目上右键【构建】,就可以编译成功了。

相关标签: g 编译