我很确定我添加了主文件,但我不知道为什么我的cpp文件被删除以及为什么我收到此错误。我输入了终端 g ++ -o assign8.cpp -lboost_system -lboost_thread
我会添加我的代码,但文件已被删除
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 0 has invalid symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 1 has invalid symbol index 12
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 2 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 3 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 4 has invalid symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 5 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 6 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 7 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 8 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 9 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 10 has invalid symbol index 12
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 11 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 12 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 13 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 14 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 15 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 16 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 17 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 18 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 19 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 20 has invalid symbol index 20
/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
collect2: error: ld returned 1 exit status
答案 0 :(得分:2)
-o
您希望使用以下内容进行编译:g ++ -o assign8 assign8.cpp -lboost_system -lboost_thread assign8.cpp将写入assign8.cpp,几乎肯定不是你想要的。 .cpp文件输入不输出。
答案 1 :(得分:0)
以下是一种在将来使用Makefile来帮助避免这种情况的方法。 Makefile可能很复杂但如果你想认真做编程,你需要学习各种构建系统。
以下内容与源代码位于同一目录中。它必须命名为Makefile
。首都M是传统的,我认为这是必要的。
CFLAGS += -g -O2 -Wall -W -pedantic
CXXFLAGS = $(CFLAGS) -std=c++11
CFLAGS += -pthread
LDLIBS += -lboost_thread
LDFLAGS += -pthread
all: binary-file-read
test1: test1.o test2.o
您需要调整它。如果您了解Makefile,您会注意到我没有任何明确的构建规则。它依赖于隐含的规则。
因为"所有"如果我只是键入" make"是第一个目标。它构建了所有"这需要构建" binary-file-read"。有一个"二进制文件-read.cpp" Make查找并找出如何使用其隐式规则构建的文件。这些规则使用我定义的所有变量。
然后" test1"从两个对象构建" .o"文件。该目录有" test1.c"和" test2.c"并弄清楚如何将这些文件构建到.o文件中,然后将它们链接到可执行文件中。
该目录还有一个名为" opt-test.c"的文件。我可以输入"进行选择测试"即使Makefile根本没有提及它,它也会构建它。
Make非常有用。