當試圖在Mac OS X 10.8上使用make make
構建FreeImage 3.1.5.4時,會發生以下錯誤g++-4.0: No such file or directory
。有關編譯器配置的makefile有問題。如何解決這個問題?如何在Mac OS X 10.8上編譯FreeImage?
3
A
回答
6
對於OS X版本> 10.6,FreeImage 3.1.5.4的makefile.osx
已過時。看到這篇文章的底部的修改版本。除了解決在FreeImage issue tracker描述的問題,您需要添加一行Source/OpenEXR/IlmImf/ImfAutoArray.h
:
#include <cstring>
對OS的Makefile X 10.8:
# -*- Makefile -*-
# Mac OSX makefile for FreeImage
# This file can be generated by ./gensrclist.sh
include Makefile.srcs
# General configuration variables:
CC_X86_64 = gcc -4.2
CPP_X86_64 = g++ -4.2
COMPILERFLAGS = -Os -fexceptions -fvisibility=hidden -DNO_LCMS
COMPILERFLAGS_X86_64 = -arch x86_64
COMPILERPPFLAGS = -Wno-ctor-dtor-privacy
INCLUDE +=
INCLUDE_X86_64 = -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
CFLAGS_X86_64 = $(COMPILERFLAGS) $(COMPILERFLAGS_X86_64) $(INCLUDE) $(INCLUDE_X86_64)
CPPFLAGS_X86_64 = $(COMPILERPPFLAGS) $(CFLAGS_X86_64)
LIBRARIES_X86_64 = -Wl,-syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk
LIBTOOL = libtool
LIPO = lipo
TARGET = freeimage
STATICLIB = lib$(TARGET).a
SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).dylib
LIBNAME = lib$(TARGET).$(VER_MAJOR).dylib
HEADER = Source/FreeImage.h
.SUFFIXES: .o-x86_64
MODULES_X86_64 = $(SRCS:.c=.o-x86_64)
MODULES_X86_64 := $(MODULES_X86_64:.cpp=.o-x86_64)
PREFIX = /usr/local
INSTALLDIR = $(PREFIX)/lib
INCDIR = $(PREFIX)/include
default: all
all: dist
dist: FreeImage
cp *.a Dist
cp *.dylib Dist
cp Source/FreeImage.h Dist
FreeImage: $(STATICLIB) $(SHAREDLIB)
$(STATICLIB): $(STATICLIB)-x86_64
$(LIPO) -create $(STATICLIB)-x86_64 -output $(STATICLIB)
$(STATICLIB)-x86_64: $(MODULES_X86_64)
$(LIBTOOL) -arch_only x86_64 -o [email protected] $(MODULES_X86_64)
$(SHAREDLIB): $(SHAREDLIB)-x86_64
$(LIPO) -create $(SHAREDLIB)-x86_64 -output $(SHAREDLIB)
$(SHAREDLIB)-x86_64: $(MODULES_X86_64)
$(CPP_X86_64) -arch x86_64 -dynamiclib $(LIBRARIES_X86_64) -o [email protected] $(MODULES_X86_64)
.c.o-x86_64:
$(CC_X86_64) $(CFLAGS_X86_64) -c $< -o [email protected]
.cpp.o-x86_64:
$(CPP_X86_64) $(CPPFLAGS_X86_64) -c $< -o [email protected]
install:
install -d -m 755 -o root -g wheel $(INCDIR) $(INSTALLDIR)
install -m 644 -o root -g wheel $(HEADER) $(INCDIR)
install -m 644 -o root -g wheel $(SHAREDLIB) $(STATICLIB) $(INSTALLDIR)
ranlib -sf $(INSTALLDIR)/$(STATICLIB)
ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(LIBNAME)
clean:
rm -f core Dist/*.* u2dtmp* $(MODULES_X86_64) $(STATICLIB) $(SHAREDLIB) $(SHAREDLIB)-x86_64
1
作爲除了克里斯托夫的回答是:
回答中提到的GCC 4.2
已經過時了,並且FreeImage
編譯使用Clang
相當好。所以,我會建議切換到Clang
工具鏈。
相關問題
- 1. Mercury編譯錯誤與Mac OS X 10.8
- 2. 在Mac OS X上使用gstreamer編譯OpenCV 2.4.3-rc 10.8
- 3. 編譯和Mac OS X上使用升壓1.51.0 10.8
- 4. 鏈接在mac os x(10.8)
- 5. AVCaptureScreen在Mac OS X 10.8
- 6. 編譯SQLCipher在Mac OS 10.8(64位)
- 7. 在Mac OS X上安裝GraphicsMagick 10.8
- 8. Mac OS X 10.8上的svn在哪裏?
- 9. sendto在Mac OS X上返回EINVAL 10.8
- 10. 在Mac OS X上使用make和Clang連接FreeImage 3.16.0的問題10.8
- 11. 用Cython編譯/連接在Mac OS X 10.8失敗
- 12. 如何在Mac OS X 10.6上編譯Mac OS X 10.5的python擴展?
- 13. 在Mac OS X Mavericks上編譯提升
- 14. 在mac os上交叉編譯x
- 15. 在Mac OS X上編譯mp4v2
- 16. 在Mac OS X上編譯C#
- 17. 用CoreServices.h在Mac OS X上編譯pulseaudio
- 18. libpipeline無法在Mac OS X上編譯
- 19. Mac OS X上的MySQL ODBC 10.8
- 20. 在OS X 10.8
- 21. 在OS X 10.8
- 22. 在OS X 10.8
- 23. 如何編譯爲Mac OS X 10.5
- 24. Mac OS X Lion - 編譯Q
- 25. 如何在Mac OS X 10.8 Mountain Lion上安裝OCI8 PHP擴展
- 26. 編譯和Mac OS X上聯libev
- 27. 編譯Mac OS X上的lsyncd(Lion)
- 28. 編譯Mac OS X上的pymunk
- 29. gcc 4.8在OS X上編譯錯誤10.8
- 30. 在OS X 10.8(64位)上交叉編譯rsync到10.7(32位)
你是對的!但我認爲這會更好,作爲評論。 – Christoph