今天在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