c++ - #include <FreeImage.h> 未找到

标签 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++ 程序中,它显示未找到错误文件:

#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/

相关文章:

c++ - cpp异常获取抛出调用者的详细信息

c++ - 英特尔 C++ 编译器是否有边界检查?

ruby-on-rails-3 - 问题 w/Paperclip、MacPorts、ImageMagick 和 Snow Leopard

c++ - 将 unique_ptr 的 vector 插入另一个 vector

java - 相机崩溃 : Fatal signal 6 (SIGABRT) with JNI code

macos - ITMS-90451 :CFBundleIdentifier Collision Error

objective-c - NSRunningApplication 'terminated' 不可观察

macos - zsh 函数在 OSX 上设置 docker 环境

sorting - 在 Mac OS 10.6 上获得排序的、人类可读的 du 输出的最有效方法是什么?

objective-c - OpenPGP 库