gcc编译-找不到-lmpir



我正试图在我的Windows 7机器上使用MinGW下使用GCC与MPIR编译一个简单的C程序。我用configure, make, make check和make install成功安装了MPIR(我猜)(没有使用sudo -这是什么?)

程序名为"mytest.cpp",位于MPIR的顶部文件夹中,即C:/MPIR/MPIR -2.7.0/,"MPIR .h"也在其中(它是"正确的"吗?)有几个吗?)mpir.h?):

#include "mpir.h"
using namespace std;
int main ()
{
  mpz_t z; 
  mpz_init(z);   
  return 0;
}

我尝试通过

编译

gcc mytest. C -o mytest -lmpir -I/C:/MPIR/MPIR -2.7.0/

,希望GCC能够找到mpir.h, "-lmpir",因为一个有帮助的开发人员告诉我;然后它说:

" C:/mingw/[…/bin/ld.exe: cannot find -lmpir"

,"[…表示在"minGW"目录中上下爬的某个目录。然而,我与壳目前在C:/MPIR/mpir-2.7.0/目录。

怎么了?如何使GCC找到mpir文件?编译选项"-I"应该用不同的拼写吗?我也听说过一些"-L"选项,但在任何地方都找不到。谢谢。

变化

gcc mytest. C -o mytest -lmpir -I/C:/MPIR/MPIR -2.7.0/

gcc mytest.c -o mytest -lmpir -IC:/MPIR/mmpir -2.7.0/-LC:/MPIR/mmpir -2.7.0

你不需要在C:前面加一个/,并且-L标志告诉链接器在哪里找到你要用-L标志链接的库。

另外,我建议使用到包含和库的相对路径,而不是绝对路径。

好的,我修好了。
总结起来,关键点是:
- gcc选项的顺序很重要:"-o mytest"需要放在最后,"-lname"在"- ldir "之前之后;
-路径应该有"。Libs ",因为这是库所在的位置(即使它们不需要命名为libmpir.a)
—(至少在MinGW中)工作格式为c:/MPIR/MPIR -2.7.0/。lib(因此是绝对的,也来自/usr/local/或其他地方)

有效的方法如下:

$ gcc mytest.c -Lc:/MPIR/MPIR -2.7.0/lib -lmpir -o mytest
$ gcc mytest.c -Lc:/MPIR/MPIR -2.7.0/lib - lmpirr .dll -o mytest

相关内容

  • 没有找到相关文章

最新更新