Poco RWLock - 未定义对'pthread_rwlock_wrlock@@GLIBC_2.2.5的引用
Poco RWLock - Undefined reference to 'pthread_rwlock_wrlock@@GLIBC_2.2.5
我正在Ubuntu 14.04 x64上构建一个守护程序应用程序,我收到一个链接器错误:
undefined reference to symbol 'pthread_rwlock_wrlock@@GLIBC_2.2.5'
代码是
#include <Poco/RWLock.h>
class DatabaseHandler
{
public:
typedef std::shared_ptr<DatabaseHandler> Ptr;
DatabaseHandler() {};
virtual ~DatabaseHandler() {};
virtual bool Connect(const STRING& connstring);
bool Disconnect();
BOOL IsConnected() {
return (m_pSession && m_pSession->isConnected());
}
protected:
std::unique_ptr<Poco::Data::Session> m_pSession;
Poco::RWLock m_write_lock;
};
class FADatabaseHandler : public DatabaseHandler
{
public:
EDBReturnValues UpdateHouse(TFAData& data);
private:
BOOL HouseExists(const UINT HouseId);
};
以及实施。。
EDBReturnValues FADatabaseHandler::UpdateHouse(TFAData& data)
{
Poco::ScopedWriteRWLock lock(m_write_lock);
.....
}
此文件的编译器命令行是
g++ -Wall -fexceptions -std=c++11 -g -lrt -lm -lpthread -DPOCO_STATIC -DPOCO_NO_AUTOMATIC_LIBS -DUSING_POCO_LIB -DBUILD_AS_SERVER -I/usr/local/mysql/include -c /home/daniele/src/TBServer/FADatabaseHandler.cpp -o obj/Debug/FADatabaseHandler.o
如果我注释RWLock.h include、m_write_lock和ScopedWriteRWLock调用,我会在中得到错误
/usr/bin/ld: /usr/local/lib/libPocoFoundationd.a(TextEncoding.o): undefined reference to symbol 'pthread_rwlock_wrlock@@GLIBC_2.2.5'
我哪里错了?
谨致问候。
如果您使用CMake,您可以执行以下操作:
...
find_package(Threads)
...
target_link_libraries(
...
${CMAKE_THREAD_LIBS_INIT}
)
相关文章:
- 'make check' GLIBC 运行时的链接问题
- 有没有与 c++ 中的 glibc mtrace() 函数类似的函数?
- 停止与GLIBC的联系,将时间变成__strftime_l
- 静态链接 glibc & boost_python36 for Python extension
- 强大的 rwlock 在 posix
- 未知C++错误:致命错误:glibc检测到无效的stdio句柄
- 是否可以在 OpenSUSE 上降级 glibc?
- glibc 版本比 gcc 版本和 -wl,-rpath 不工作
- libstdc++.so 在使用 Patchelf 和备用 glibc 版本时找不到
- Nemiver 找不到文件 /build/glibc-LK5gWL/glibc-2.23/stdlib/random.c
- 从检测到 glibc 正常退出 - malloc():内存损坏
- 了解 glibc 错误"corrupted size vs. prev_size"
- 在glibc中,“_L_lock_%=”如何变成“_L_lock_432”
- 使用 glibc 2.7 包含路径编译失败
- Versions of GLIBC
- ***检测到的GLIBC *** MS2:free():无效指针:0xB7526FF4 ***
- 在libc++和glibc中,解析doubles时字符串流行为不一致
- ARM与旧的glibc交叉编译
- 为什么我会收到 glibc 错误
- glibc函数的GCC、-flto、-fno内置和自定义函数实现