2009-12-12 3 views
0

Mac OS X 10.6의 /lib/FreeImage에서 FreeImage 3.10.0을 소스로 컴파일했습니다.소스에서 컴파일 된 FreeImage. #include FreeImage.h 찾을 수 없음

나는이 파일이 복사 된 컴파일 후 것을 볼 수 있습니다

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

CMake가 FreeImage를 찾을 수 있지만, 나는 심지어 내가에 FreeImage.h을 추가 할 필요가 내가 가정입니다

#include <FreeImage.h> // not found 

할 수 없습니다 Mac OS X 환경 경로, 환경 경로 변수를 저장하는 몇 가지 파일이 있기 때문에 어느 경로가 올바른지는 알 수 없습니다.

내 C++ 앱이나 CMake에서 FreeImage 헤더를 찾으려면 어떻게해야합니까? 여기

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 

업데이트 : 내가 다음 다시 니콜라스 '지침에 따라 내 메이크 파일에 다음 라인을 추가했지만이 작동하지 않았다

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/usr/local/include'에 -I와 경로 사이에 공백이 있어야합니다. –

+0

시도해 보았지만 작동하지 않았습니다. –

0

gcc -c file.c -o file.o -I/usr/local/include로 컴파일하면 FreeImage.h를 참조하는 파일을 컴파일해야합니다.

그러나, 모든 isysroot 사용할 때하는 것이 시스템 루트에 상대적인된다 (즉, 당신에 refrence에/usr/지방/포함이 사실 isysroot는/usr// 지역 포함). "GCC -v는"쉽게 물건을 만들기에 일어나는 모든 표시됩니다 :

' INCLUDE +='라인이 공격하는 것과 같은 모양
tmp diciu$ gcc -v -isysroot /Developer/SDKs/MacOSX10.6.sdk test.c 
[..] 
ignoring nonexistent directory "/Developer/SDKs/MacOSX10.6.sdk/usr/local/include" 
관련 문제