c++ - 使用 gtest 测试共享库 (.so)
问题描述
我有一个共享库 libpid.so
为它创建了一个 gtest。
在 gtest 中使用 #include "libpid.cpp" 的方法有效。
但是,如果我尝试将 gtest 与 .so 链接起来,它会像这样失败:
g++ gtest_libpid.cpp -o gtest_libpid /usr/lib/libgtest.a -lpthread -ldl -L. -lpid
In file included from /usr/include/gtest/gtest.h:1874:0,
from gtest_libpid.cpp:1:
gtest_libpid.cpp: In member function ‘virtual void LibpidTest_GetpidInit_Test::TestBody()’:
gtest_libpid.cpp:8:15: error: ‘getpid_init’ was not declared in this scope
ASSERT_EQ(0, getpid_init());
^
gtest_libpid.cpp:8:15: note: suggested alternative: ‘getpid’
gtest_libpid.cpp:10:12: error: ‘r_getpid’ was not declared in this scope
ASSERT_NE(r_getpid, nullptr);
^
gtest_libpid.cpp:10:12: note: suggested alternative: ‘__getpgid’
gtest_libpid.cpp:11:12: error: ‘r_fork’ was not declared in this scope
ASSERT_NE(r_fork, nullptr);
^
gtest_libpid.cpp:11:12: note: suggested alternative: ‘vfork’
gtest_libpid.cpp:12:12: error: ‘r_clone’ was not declared in this scope
ASSERT_NE(r_clone, nullptr);
^
gtest_libpid.cpp:12:12: note: suggested alternative: ‘clone’
使用 gtest 测试 .so 共享库的正确方法是什么?
解决方案
推荐阅读
- sql-server - 执行 SQL Server 的任务怎么可能被并行调用?
- android - 如何获取触摸事件的绝对位置?
- git - 克隆外部(远程)存储库时的建议
- ios - 在 iOS13 上编辑加载到 WKWebview 上的 HTML 文件时围绕 html 内容的边框
- python - PyMySQL:连接被主机中的软件中止
- xaml - 如何防止在uwp中特定宽度和高度后窗口缩小
- c# - 使用 BitMiracle.LibTiff.Net 库将 JPEG 转换为 TIFF 图像 C# 时未获得预期输出
- python - Pyspark:如何以数据框的行作为参数应用用户定义的函数?
- shopware - 是否有任何事件或钩子可用于商店更改?
- awk - 在特定数量的唯一条目后拆分文件