gtest - 未定义对"testing::InitGoogleTest(int*, char**)"的引用
gtest - undefined reference to `testing::InitGoogleTest(int*, char**)'
我正在尝试创建makefile并编译gtest
的简单示例,但我得到了错误:
g main.o -o示例output main.o:在函数
main': main.cpp:(.text+0x1e): undefined reference to
testing :: initgoogletest(int*,char **('collect2:错误:ld返回1 退出状态制造:*** [输出]错误1
这是main.cpp:
#include <iostream>
#include "gtest/gtest.h"
using namespace std;
int main(int argc, char **argv)
{
cout << "This is test" << endl;
testing::InitGoogleTest(&argc, argv);
return 0;
}
这是makefile:
INCLUDE = -I/usr/include/
LIBPATH = -L/usr/lib/
output: main.o
g++ main.o -o exampleOutput
main.o: main.cpp
g++ -c main.cpp $(INCLUDE) $(LIBPATH) -lgtest -lgtest_main -pthread
(gtest的标头文件(位于 /usr/include/gtest
中LIB文件位于/usr/lib
中。
我在做什么错?
谢谢。
-lgtest
和-lgtest_main
参数应在链接示例输出时传递,而不是编译main.o时。它在您的评论中与命令一起使用的原因是,该命令正在一次执行这两个步骤,而您的makefile却不是。
makefile也不正确,因为目标仅命名output
,而该命令实际上产生exampleOutput
,因此即使不需要,该命令也将始终执行,因为该命令的名为output
的文件将永远不会实际是生产...
相关文章:
- 将 char 指针传递给接受对 char 数组的引用的函数
- 枚举类的 C 样式强制转换到基础类型 char 的引用
- 成员引用基类型 'char' 不是 C++ 中的结构或联合
- 包括"lvtocon.h",未定义对'operator<<(std::ostream&, char const*)的引用
- 为什么要使用引用来获取 *char?当我们使用指针时,不使用引用不是更好吗?
- gtest - 未定义对"testing::InitGoogleTest(int*, char**)"的引用
- Qt5 对'QApplication::QApplication(int&, char**, int)'的未定义引用
- 悬空指向 int 和 char* 常量的指针/引用
- 来自类型为std::basic_string::const_iterator的非常量引用的无效初始化,并且<char>来自类型std::basic_string<char>::
- 类型为'std::string&的非常量引用的初始化无效,并且从类型为'std::basic_string<char>的右值
- 将 C++ 转换为 Python 通过引用返回无符号 char*
- 使用cout,如何将char转换为变量的地址/引用(?)
- 从运算符[]返回对映射的char*的引用
- Arduino:未定义的对"I2CRW::readByte(unsigned char, unsigned char)"的引用
- C# PInvoke - 返回 char* 和引用 char* 参数的函数
- 链接器错误(未定义的引用)与“静态 constexpr const char*”和完美转发
- 对'icu_56::UnicodeString::UnicodeString(signed char, unsigned short const*, int)' 的未定义引用
- 如何创建一个32位int和四个8位char类型的并集,每个类型都引用32位int的差分片
- __FILE__可以由C++中的const char*引用
- 从 (void *) "Un-casting"并取消引用 char 数组