我已经从源代码编译了 FreeImage 并安装了它。
当我运行 sudo make install
时,会在我的系统上安装以下文件
/usr/local/include/FreeImage.h
/usr/local/lib/libfreeimage-3.10.0.dylib
/usr/local/lib/libfreeimage.a
但是,当我执行此操作时,在我的 C++ 程序中,它显示未找到错误文件
:
#include <FreeImage.h>
我尝试将其添加到我的系统路径文件中:
sudo vi /etc/paths
#FreeImage
/usr/local/include
/usr/local/lib
但是 C++ 仍然无法在 Xcode 或 gcc 中找到我的 #include
。
最佳答案
您不希望这些目录出现在您的 /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?了解更多。
由于您使用的是 GUI 版本的 Cmake,因此您应该执行以下操作:
打开“属性列表编辑器”,单击“添加子项”。对于“新项目”,输入 CMAKE_INCLUDE_PATH
,对于类型,将其保留为“字符串”,对于值,输入 /usr/local/include
。然后,再次点击“添加项目”,输入CMAKE_LIBRARY_PATH
对于“新项目”,将类型保留为“字符串”,对于“值”,输入 /usr/local/lib
。然后保存(文件 -> 另存为)到文件。我建议文件名a.plist
在您的桌面文件夹中。然后打开终端(应用程序 -> 实用程序 -> 终端)并输入:
mv ~/Desktop/a.plist ~/.MacOSX/environment.plist
之后,退出 Xcode 和 Cmake gui,然后重新启动。那应该有效。请参阅this了解技术细节,以及 this了解更多。
关于c++ - #include <FreeImage.h> 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1898837/