当我编译两个 .c 文件(如下所示)时,我收到一个非常奇怪的错误。
终端编译代码
gcc -I. -o main.c matrix.c -lblas -lgfortran
Error:
/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 都会被删除。奇怪的是,直到几分钟前一切都运行良好。有人可以帮忙吗?
gcc -I. -o main.c matrix.c -lblas -lgfortran
the -o main.c
告诉编译器将其编译输出写入文件 main.c,这可能不是您想要的。您可能想要:
gcc -I. -o progname main.c matrix.c -lblas -lgfortran
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)