从源代码编译的FreeImage。 #包括FreeImage.h未找到(Compiled Fre

2019-10-18 16:06发布

我从源以在Mac OS X 10.6 / lib目录/编译的FreeImage FreeImage的3.10.0。

我可以看到,编译后,这些文件被复制:

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

CMake的不能找到FreeImage的,但我不能连做

#include <FreeImage.h>  // not found

我假设我需要FreeImage.h添加到Mac OS X环境的路径,但我不知道哪条路是正确的,因为是存储环境路径变量的几个不同的文件。

什么我需要做的就是FreeImage的头被我的C ++应用程序或CMake的发现?

这是我的第一部分Makefile.osx被这有助于:

# -*- Makefile -*-
# Mac OSX makefile for FreeImage

# This file can be generated by ./gensrclist.sh
include Makefile.srcs

# General configuration variables:
CC_PPC = gcc-4.0
CC_I386 = gcc-4.0
CPP_PPC = g++-4.0
CPP_I386 = g++-4.0
COMPILERFLAGS = -Os -fexceptions -fvisibility=hidden
COMPILERFLAGS_PPC = -arch ppc
COMPILERFLAGS_I386 = -arch i386
COMPILERPPFLAGS = -Wno-ctor-dtor-privacy
INCLUDE += 
INCLUDE_PPC = -isysroot /Developer/SDKs/MacOSX10.6.sdk
INCLUDE_I386 = -isysroot /Developer/SDKs/MacOSX10.6.sdk
CFLAGS_PPC = $(COMPILERFLAGS) $(COMPILERFLAGS_PPC) $(INCLUDE) $(INCLUDE_PPC)
CFLAGS_I386 = $(COMPILERFLAGS) $(COMPILERFLAGS_I386) $(INCLUDE) $(INCLUDE_I386)
CPPFLAGS_PPC = $(COMPILERPPFLAGS) $(CFLAGS_PPC)
CPPFLAGS_I386 = $(COMPILERPPFLAGS) $(CFLAGS_I386)
LIBRARIES_PPC = -Wl,-syslibroot /Developer/SDKs/MacOSX10.6.sdk
LIBRARIES_I386 = -Wl,-syslibroot /Developer/SDKs/MacOSX10.6.sdk
LIBTOOL = libtool
LIPO = lipo

更新:我添加几行代码写进我的Makefile文件按尼古拉斯的说明,然后重建但这并没有工作:

CFLAGS = -I/usr/local/include
LDFLAGS = -L/usr/local/lib

Answer 1:

在“ INCLUDE += ”行看起来像一个攻击:

INCLUDE += -I/usr/local/include

如果库丢失过,那么你需要找到另一条线路添加“ -L/usr/include/lib ”来。



Answer 2:

你必须添加-I在/ usr /本地/包括对CFLAGS和-L在/ usr / local / lib目录编译时LDFLAGS。



Answer 3:

与GCC编译-c file.c -o file.o -I在/ usr /本地/包括应编译文件,该文件是指FreeImage.h。

但是,使用isysroot一切,当成为相对于系统根目录(即你的refrence到/ usr /本地/包括其实isysroot在/ usr /本地/包括)。 “GCC -v”将表明,发生的一切事情,让事情变得简单:

tmp diciu$ gcc -v -isysroot /Developer/SDKs/MacOSX10.6.sdk test.c
[..]
ignoring nonexistent directory "/Developer/SDKs/MacOSX10.6.sdk/usr/local/include"


文章来源: Compiled FreeImage from source. #include FreeImage.h not found