各位,
我正在ubuntu上写一个使用posix共享内存和semophores的程序。我试图直接链接到板载/usr/lib/x86_64-linux-gnu/librt.so
,但是共享对象库与我的程序不兼容。确切的链接错误如下...
/usr/bin/ld: libopticalheadShMutils.a(shmutils.cpp.o): undefined reference to symbol 'sem_post@@GLIBC_2.2.5'
/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
问:我需要做什么来使用这个库?我想我需要从源代码编译一个新的非系统库--这是正确的方法吗?哪里是获得源代码的最佳位置?
1条答案
按热度按时间ru9i0ody1#
终于解决了。我没有链接到posix线程库,这是使用librt时所必需的。关于ABI不兼容问题-unix库应该都是C89,因此兼容-我错了。