2015-04-03 72 views
1

我在Windows机器上,我试图让Mingw(用gcc/g ++ 4.9.2)来识别我已经安装了一个库。Mingw FFTW3找不到库/头文件

图书馆是fftw3(快速傅立叶变换)库的位置:

http://www.fftw.org/install/windows.html

我下载其中有三个重要的dll和其他一些头文件的文件夹太

libfftw3-3.dll libfftw3l-3.dll libfftw3f-3.ll

但是我不知道该如何处理它们。

我有C++代码从另一位作者,需要的库,当我运行

waf configure waf build

我得到“-libfftw3”未发现的错误。

我已经把dll所在的目录放到我的Windows路径中,这看起来像这样一个简单的问题,但我不知道如何让编译器找到预编译的DLL。 (我也试过只是让gcc编译器做一个默认搜索而没有指定一个库,但它说没有找到“fftw.h”,这很奇怪,因为我已经把该目录放在了我的路径中。

任何帮助将不胜感激;我没有阅读网站的说明,但对于Windows,它只告诉你使用Visual Studio的一些命令(但我没有使用该编译器),并且我浏览过其他网站的类似问题,但是我找不到解决方案

回答

0

您必须将头文件和DLL放在GCC/G ++将要查找的地方;(它确实为而不是搜索这些Windows路径,而是搜索这些路径,而是使用指定的路径'-I path/to/headers'和'-L path/to/libs'选项在编译器命令本身中)。

你有,基本上三个选择在这里:

  1. 显式指定每个 单独编译器的适当-I和-L选项命令本身。
  2. 为头文件设置环境变量,例如CPATH,C_INCLUDE_PATH和CPLUS_INCLUDE_PATH,为库设置LIBRARY_PATH。
  3. 将头文件和DLL安装(复制)到标准目录中,这些标准目录已由编译器自动搜索。

请参阅http://mingw.org/wiki/IncludePathHOWTOhttp://mingw.org/wiki/LibraryPathHOWTO了解更多详情。

请注意,在DLL的情况下,安装它们的目录也必须出现在应用程序(.EXE)的默认DLL搜索路径中。还要注意的是,如果这些是你自己编译的DLL,它们可能已经用MinGW的GCC/G ++,以外的任何编译器编译过,它们会导出C++符号,但它们可能与您的应用程序不兼容,你与MinGW的G ++编译。