[英]In function `_start': (.text+0x20): undefined reference to `main' collect2: ld returned 1 exit status
[英]g++ link problems: In function `_start': (.text+0x20): undefined reference to `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(正如你的控制台輸出暗示)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.