- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在 Ubuntu Linux 上,我一直在关注 gtest
给出的指示 here安装gtest
手动将头文件和库复制到 /usr/include
和/usr/lib
,分别。
然后我尝试编译以下代码( test1.cpp
)
#include <gtest/gtest.h>
TEST(MathTest, TwoPlusTwoEqualsFour) {
EXPECT_EQ(2 + 2, 4);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest( &argc, argv );
return RUN_ALL_TESTS();
}
g++ -Wall -g -pthread test1.cpp -lgtest_main -lgtest -lpthread
只是为了看到以下错误:
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libgtest.so: undefined reference to `pthread_key_create'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libgtest.so: undefined reference to `pthread_getspecific'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libgtest.so: undefined reference to `pthread_key_delete'
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib/libgtest.so: undefined reference to `pthread_setspecific'
collect2: error: ld returned 1 exit status
通用答案是关于 g++
的参数顺序。 。但是,我想我已经尝试了参数 -lpthread
的每一个组合顺序。 (有或没有 l
), -lgtest
和-lgtest_main
。我总是遇到同样的错误。
我不认为顺序是问题。一定是别的东西。大家有什么想法吗?
最佳答案
要将 gtest
库链接到您的 gtest,似乎必须使用静态 gtest 库(出于未知原因;请参阅 here )。因此,不要使用像这样的命令行
g++ -Wall -g -pthread test1.cpp -lgtest_main -lgtest -lpthread
必须使用
g++ -Wall -g -pthread test1.cpp /usr/lib/libgtest.a
这里,库位于 /usr/lib
中,但根据 gtest
的安装方式,文件 libgtest.a
位于其他位置。
关于c++ - 对 `pthread_key_create' 的 undefined reference ;参数顺序不能解决问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27091835/
根据 pthread_key_create手册页我们可以关联一个在线程关闭时调用的析构函数。我的问题是我注册的析构函数没有被调用。我的代码要点如下。 static pthread_key_t key;
我的代码: const uptr kPthreadDestructorIterations = 2; static pthread_key_t key; static bool destructor_
我们可以在使用 pthread_create/(not key_) 时将参数传递给线程,如果每个线程使用值结束。如果关于使用静态存储,我们使用互斥锁,那么,我们使用 pthread_key_creat
我在弄清楚 pthread_key_t 和 pthread_key_create 如何工作时遇到了一些麻烦。据我了解,每个线程都有 TLS(线程本地存储),并且使用 key 来访问线程本地存储。我不明
我已经从这里下载了 gtest 1.7.0 源代码: https://code.google.com/p/googletest/downloads/list 并在 ubuntu 13.10 上构建 g
我写了一个程序来学习 Linux (Linux 3.13.0-24-generic#46-Ubuntu) 上的线程专有数据,如下。 我尝试在传递给 pthread_key_create() 的析构函数
CGO_CFLAGS="--sysroot=android-sdk-linux/ndk-bundle/platforms/android-9/arch-arm/" CGO_ENABLED=1 CC=a
假设有以下代码: pthread_key_t key; pthread_key_create(&key, NULL); /* failure here */ pthread_key_delete
假设如下代码: pthread_key_t key; pthread_key_create(&key, NULL); /* failure here */ pthread_key_delete(
这是构建日志,有人可以帮忙吗? gcc -DHAVE_CONFIG_H -DHAVE_VERSION_H -DLIBRARY_DIR="\"/usr/local/lib\"" -DSBIN_DIR="
有时,当我尝试使用 pthread_key_create 创建 key 时,我会收到 EAGAIN 错误代码。是否有可能确切地知道为什么? 文档说: The system lacked the nec
这个问题已经有答案了: undefined reference to `pthread_key_create' (linker error) (5 个回答) 已关闭 8 年前。 在 Ubuntu Li
采用这个简单的函数,在由 std::mutex 实现的锁下递增整数: #include std::mutex m; void inc(int& i) { std::unique_lock l
我是一名优秀的程序员,十分优秀!