未定义的参考,gmp lib
我通过 cygwin 的安装程序在 cygwin 中安装了 gmp 库。我尝试用 gcc 编译一个简单的程序。
#include <stdio.h>
#include <stdlib.h>
#include <gmp.h>
int
main(void)
{
mpz_t test;
int i;
printf("enter number\n");
gmp_scanf("%Z",&test);
gmp_printf("test=%Z",test);
i=mpz_probab_prime_p(test,5);
if(i)
printf("prime\n");
else
printf("not prime\n");
return 0;
}
但我得到了这个:
/cygdrive/c/Users/xxxxx/Documents/NetBeansProjects/rsa_system/main.c:13: undefined reference to `__imp____gmp_scanf'
这是我第一次尝试使用非标准库,我在这里感到困惑。我的编译器设置为 Cygwin,并且我已经完成了所有安装部分。关于可能出什么问题的任何想法吗?谢谢。
I installed the gmp libraries in cygwin via its installer. I tried to compile a simple program with gcc.
#include <stdio.h>
#include <stdlib.h>
#include <gmp.h>
int
main(void)
{
mpz_t test;
int i;
printf("enter number\n");
gmp_scanf("%Z",&test);
gmp_printf("test=%Z",test);
i=mpz_probab_prime_p(test,5);
if(i)
printf("prime\n");
else
printf("not prime\n");
return 0;
}
But I got this:
/cygdrive/c/Users/xxxxx/Documents/NetBeansProjects/rsa_system/main.c:13: undefined reference to `__imp____gmp_scanf'
This is the first time that I try to use a non-standard library and I'm getting confused here. My compiler is set to Cygwin and I've done all the installation part. Any ideas on what may be wrong? Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否要求 gcc 链接 GMP?
即:
gcc -lgmp main.c ....
Are you asking gcc to link GMP?
i.e.:
gcc -lgmp main.c ....
另一件需要考虑的事情是在 GMP 库中链接的顺序。如果您先链接 GMP,然后再链接 GMPXX(即 C++ 扩展),那么您就会遇到麻烦。首先链接 GMP,然后链接 GMPXX。
Another thing to think about is the order in which you link in GMP libraries. If you link in GMP first, and then GMPXX (i.e. the C++ extension), then you'll be in trouble. Link in GMP first and then GMPXX.