#include <freeimage.h>未找到</freeimage.h>

时间:2009-12-14 04:00:33

标签: c++ macos osx-snow-leopard freeimage

我已经从源代码编译了FreeImage并安装了它。

当我运行sudo make install时,在我的系统上安装以下文件

/usr/local/include/FreeImage.h
/usr/local/lib/libfreeimage-3.10.0.dylib
/usr/local/lib/libfreeimage.a

然而,在我的C ++程序中,当我这样做时它会显示error file not found

#include <FreeImage.h> 

我尝试将其添加到我的系统路径文件中:

sudo vi /etc/paths

#FreeImage
/usr/local/include
/usr/local/lib

但是C ++仍然无法在Xcode或gcc中找到我的#include

1 个答案:

答案 0 :(得分:3)

想要/etc/paths文件中的这些目录。该文件列出了shell搜索可执行文件的目录。

尝试:

$ CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" make
$ sudo make install

您可能需要将/usr/local/lib添加到DYLD_LIBRARY_PATH以确保可执行文件运行:

$ export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH

(假设您的DYLD_LIBRARY_PATH变量没有/usr/local/lib,并且它开头并非空。如果它是空的,则应该export DYLD_LIBRARY_PATH=/usr/local/lib代替。)

编辑:好的,根据您的评论,看起来应该可行:

export CMAKE_INCLUDE_PATH=/usr/local/include
export CMAKE_LIBRARY_PATH=/usr/local/lib

有关详情,请参阅What to do if cmake doesn't find the package although it exists on the system?

由于你使用的是Cmake的GUI版本,你应该这样做:

打开“属性列表编辑器”,单击“添加子项”。对于“新项目”,输入CMAKE_INCLUDE_PATH,对于类型,将其保留为“字符串”,对于值,输入/usr/local/include。然后,再次点击“添加项目”,为“新项目”输入CMAKE_LIBRARY_PATH,将类型保留为“字符串”,输入“值”,输入/usr/local/lib。然后将(文件 - &gt;另存为)保存到文件中。我建议在您的桌面文件夹中使用文件名a.plist。然后打开终端(Appilcations - &gt; Utilities - &gt; Terminal)并输入:

mv ~/Desktop/a.plist ~/.MacOSX/environment.plist

之后,退出Xcode和Cmake gui,然后重新启动。这应该工作。有关技术详情,请参阅this,有关详情,请参阅this