2009-12-12 41 views
0

我在Mac OS X 10.6上編譯了FreeImage 3.10.0,來自/lib/FreeImage從源碼編譯FreeImage。 #include FreeImage.h not found

我可以看到,編譯後,這些文件被複制:

/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 

回答

0

的「​​」線看起來像一個攻擊:

INCLUDE += -I/usr/local/include 

如果庫丟失過,然後您將需要找到另一行以添加'-L/usr/include/lib'。

1

編譯時,您必須將-I/usr/local/include添加到CFLAGS和-L/usr/local/lib到LDFLAGS。

+0

是否意味着在-I和路徑之間有一個空格:'-I/usr/local/include' – 2009-12-12 01:31:18

+0

試過這個,它沒有工作 – 2009-12-12 01:53:28

0

使用gcc -c file.c編譯-o file.o -I/usr/local/include應編譯引用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"