Gcc 与POCO一起使用共享内存时发生链接错误
当我用POCO制作一个应用程序时,我发现编译错误有一个奇怪的地方 我已经根据检查其他人的类似问题添加了轻轨。然而,它仍然不起作用 /usr/local/lib//libPocoFoundation.a(SharedMemory.o):函数中Gcc 与POCO一起使用共享内存时发生链接错误,gcc,linker-errors,shared-memory,poco,poco-libraries,Gcc,Linker Errors,Shared Memory,Poco,Poco Libraries,当我用POCO制作一个应用程序时,我发现编译错误有一个奇怪的地方 我已经根据检查其他人的类似问题添加了轻轨。然而,它仍然不起作用 /usr/local/lib//libPocoFoundation.a(SharedMemory.o):函数中 Poco::SharedMemoryImpl::SharedMemoryImpl(标准::u cxx11::基本字符串常量&,无符号长, Poco::SharedMemory::AccessMode,void const*,bool'): SharedMem
Poco::SharedMemoryImpl::SharedMemoryImpl(标准::u cxx11::基本字符串常量&,无符号长,
Poco::SharedMemory::AccessMode,void const*,bool'):
SharedMemory.cpp:(.text+0x2ab):未定义对
shm\u open'的引用
SharedMemory.cpp:(.text+0x31b):对shm\u unlink'的未定义引用
/usr/local/lib//libPocoFoundation.a(SharedMemory.o):函数中
Poco::SharedMemoryImpl::close()':SharedMemory.cpp:(.text+0x666):
对“shm_unlink”集合2的未定义引用:错误:ld返回1
退出状态生成文件:17:目标“测试”的配方生成失败:***
[测试]错误1
神奇的是,如果我添加一个伪函数,如下所示
int dummy()
{
const char *memname = "sample";
const size_t region_size = sysconf(_SC_PAGE_SIZE);
int fd = shm_open(memname, O_CREAT | O_TRUNC | O_RDWR, 0666);
if (fd == -1)
return -1;
int r = shm_unlink(memname);
if (r != 0)
return -1;
}
它成功地建成了
我不明白为什么&我想搜索正式的,以避免这种奇怪的解决办法。
请问有人能帮忙吗
此外,我还检查了libPocoFoundation.a,并找到了两者
提前感谢。已回答-问题是链接库的顺序(
-lrt
之前的-lPocoFoundation
)。您有链接错误。我们需要查看失败的链接命令以帮助您。在问题主体中发布完整的构建日志(未编辑)。