g++ 链接问题:在函数 '_start' 中: (.text+0x20):对 'main' 的未定义引用
g++ link problems: In function `_start': (.text+0x20): undefined reference to `main'
我得到了一个未定义的对main错误的引用-尽管我已经定义了main和(AFAICT),但我已经正确地链接了它。这是我的代码和我使用的命令:
// ################################################
//proj1.h
#ifndef __SCRATCH_PROJ1_H
#define __SCRATCH_PROJ1_H
int addOne(int i);
#endif /*__SCRATCH_PROJ1_H */
// ################################################
//proj1.cpp
#include "proj1.h"
int addOne(int i){
return i+1;
}
// ################################################
//proj1_unittest.cpp
#include "proj1.h"
#include "gtest/gtest.h"
// Test Function
TEST(addOneTest, Positive) {
EXPECT_EQ(1,addOne(0));
EXPECT_EQ(2,addOne(1));
EXPECT_EQ(40320, addOne(40319));
}
TEST(addOneTest, Negative) {
EXPECT_FALSE(addOneTest(-1));
}
GTEST_API_ int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
这是控制台输出:
$ g++ -isystem -pthread -c ${SOURCE_DIR}/proj1.c -o ${SOURCE_DIR}/proj1.o
$ g++ -o ${SOURCE_DIR}/mytest ${SOURCE_DIR}/*.o -L${GTEST_DIR} libgtest.a
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
为什么链接器找不到main()
函数?
据我所见,您并没有编译文件proj1_unittest.cpp(正如您的代码注释所示)/proj1_unittest.c(正如控制台输出所示)。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 代码在main()中运行,但在函数中出现错误
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 函数是否可以访问传递给main()的参数
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 我的 int main() 中出现堆栈溢出错误
- C++变量名(可以将 main 声明为变量,但对于其他函数名称则不然)
- 在 Linux 上编译 - 在函数 '_start' 中:(.text+0x20):对 'main' 的未定义引用
- (.text+0x20):对"主要"的未定义引用是什么意思
- crt1.o:在函数"_start"中:(.text+0x20):对"main"的未定义引用
- main.cpp:(.text+0x8ea):在C++中未定义的引用
- main.cpp:(.text+0x8f):对[对象方法]的未定义引用
- main.cpp :(.text 0x5f):未定义的引用
- 尝试使用 MinGW 编译 Assembly + C++:ccqKAvXJ.o:main.cpp:(.text+0x18):对 'GetMagicNumber' 的未定义引用
- main.c:(.text+0x30):对"互惠"的未定义引用
- g++ 链接问题:在函数 '_start' 中: (.text+0x20):对 'main' 的未定义引用
- 在函数 '_start' 中: (.text+0x20): 未定义对 'main' 的引用 collect2: ld 返回 1 个退出状态
- (.text+0x20):尝试编译文件时未定义对"main".cpp引用