我使用mpir(在Windows上)编写了一个公钥私钥生成器,它工作正常。
当我尝试使用gmp库在linux机器上编译它时,会抛出一大堆链接器错误。
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 0 has invali
d symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 1 has invali
d symbol index 12
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 2 has invali
d symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 3 has invali
d symbol index 2
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 4 has invali
d symbol index 11
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 5 has invali
d symbol index 13
/usr/bin/ld: /usr/lib/debug/usr/lib/crt1.o(.debug_info): relocation 6 has invali
d symbol index 13
...
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o: In function `_start'
:
(.text+0x20): undefined reference to `main'
collect2: ld returned 1 exit status
我正在使用g++ -lgmp prime.cpp
。我没有使用任何非gmp函数。任何的想法?我没有添加代码,因为它有很多。
答案 0 :(得分:1)
我正在使用g ++ -lgmp prime.cpp
此命令行有两种方式:
main
您在引用它的源之前指定了库。应该是:
g++ main.cpp prime.cpp -lgmp
命令行matters上的库和源/对象的顺序。
更新
有几个文件..主文件依赖于它们,所以在构建之前..我正在尝试构建其他文件。
在这种情况下,正确的命令是:
# Compile, but don't link, prime.cpp
g++ -c prime.cpp