【发布时间】:2014-12-24 17:24:16
【问题描述】:
当我编译下面给出的两个 .c 文件时,我得到了一个非常奇怪的错误。
终端编译代码
gcc -I. -o main.c matrix.c -lblas -lgfortran
错误:
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 0 has invalid symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 1 has invalid symbol index 12
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 2 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 3 has invalid symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 4 has invalid symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 5 has invalid symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/i386-linux-gnu/crt1.o(.debug_info): relocation 6 has invalid symbol index 13
...
我做了一些阅读,解决方案似乎是添加一个主文件。但我知道事实上我在编译之前有 main.c 文件,其中包含 int main()。 这是编译前的所有内容列表:
> ls
errors.txt main.c main.c~ matrix.c matrix.c~ matrix.h matrix.h~
编译后,这是所有内容的列表:
> ls
errors.txt main.c~ matrix.c matrix.c~ matrix.h matrix.h~
由于某种原因,我的 main.c 每次编译时都会被删除。奇怪的是,直到几分钟前一切都运行良好。有人可以帮忙吗?
【问题讨论】:
-
-o main.c要求它使用通过编译 matrix.c 并链接 blas 和 gfortran 创建的对象覆盖main.c。尝试例如...-o main main.c...生成一个名为main的程序。
标签: c++ c compilation terminal makefile