为何编译GoogleTest单元测试时需添加-lpthread链接选项?
GoogleTest 为何需要链接
-lpthread? - GoogleTest内部依赖多线程机制:哪怕你的测试代码没直接调用pthread相关接口,GoogleTest本身在运行时会用多线程来并行执行测试用例、处理异步断言或者管理测试的生命周期,这些底层逻辑依赖POSIX线程库(pthread)。
- 平台兼容性要求:在类Unix系统(比如Linux、macOS)上,GoogleTest的默认编译配置启用了多线程支持,链接
-lpthread是为了让这些多线程相关的符号能被正确解析,避免运行时出现未定义符号的错误。 - 是否必须链接?是的:就算你的测试代码是单线程的,GoogleTest的核心实现里已经用到了pthread的API,省略这个选项的话,编译或运行阶段大概率会报错,比如Linux下会出现
undefined reference to pthread_create这类错误。
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

