我正在尝试使用wxWidgets 2.9.3编译WxWidgets的应用程序.我在Linux下编译相同的源很好,我认为主要的错误是:
#error "Carbon does not support 64bit"
Run Code Online (Sandbox Code Playgroud)
我没有得到如何正确设置.编译我使用了以下命令:
g++ hellomac.cpp -o hellomac `/opt/bin/wx-config --cxxflags --libs`
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?/ opt/bin是我安装wxWidget的地方.我的OSX版本是10.6.8
不久之前,我在Snow Leopard上使用以下配置设置为OSX构建wxWidgets:
../configure --with-cocoa --with-macosx-version-min=10.6 --enable-unicode --disable-shared --enable-debug --enable-universal-binaries
最重要的选项--with-cocoa,并--enable-universal-binaries使其在64位OSX工作.
在此之后make再次编译wxWidgets.
请注意,可能有旧版本的wxWidgets /opt/bin/.由于新的wxWidget升级,我更喜欢将编译后的wxWidgets版本放在我的主文件夹中,以便密切关注所有文件.如果将其安装在系统路径中,则可能会丢失概述.现在可能发生你没有使用你想要使用的wx-config版本.
要编译自己的wxWidget应用程序,我建议您创建自己的Makefile.你的编译命令看起来已经很好了,但是让我给你一个建议.之后--libs尝试使用类似的标志core,并base保留保存所有OSX框架将被添加到您的编译.
这里有一个简单的Makefile示例,您可以根据需要使用它.它还会创建一个OSX可执行文件.
APP = $(shell basename $(shell pwd))
CC = g++
CFLAGS = -Wall `wx-config --cppflags`
LFLAGS = `wx-config --libs core,base`
BUIDIR = build
OBJDIR = obj
OSXDIR = osx
SRCDIR = src
SOURCES := $(wildcard $(SRCDIR)/*.cpp)
OBJECTS := $(patsubst $(SRCDIR)/%,%,$(patsubst %.cpp,%.o,$(SOURCES)))
NO_COLOR = \033[0m
O1_COLOR = \033[0;01m
O2_COLOR = \033[32;01m
PREFIX = "$(O2_COLOR)==>$(O1_COLOR)"
SUFFIX = "$(NO_COLOR)"
all: clean linking osx
@echo $(PREFIX) Build finished $(SUFFIX)
clean:
@echo $(PREFIX) Cleaning up $(SUFFIX)
rm -rfv $(BUIDIR) $(OBJDIR)
$(BUIDIR)/:
mkdir -p $@
$(OBJDIR)/:
mkdir -p $@
%.o: $(SRCDIR)/%.cpp
@echo $(PREFIX) Compiling $< $(SUFFIX)
$(CC) $(CFLAGS) -c $< -o $(OBJDIR)/$@
linking: $(BUIDIR)/ $(OBJDIR)/ $(OBJECTS)
@echo $(PREFIX) Linking $(SUFFIX)
$(CC) $(CFLAGS) $(OBJDIR)/*.o -o $(BUIDIR)/$(APP) $(LFLAGS)
osx: $(BUIDIR)/$(APP) $(OSXDIR)/Info.plist
@echo $(PREFIX) Creating Mac OS X executable file $(SUFFIX)
-mkdir $(BUIDIR)/$(APP).app
-mkdir $(BUIDIR)/$(APP).app/Contents
-mkdir $(BUIDIR)/$(APP).app/Contents/MacOS
-mkdir $(BUIDIR)/$(APP).app/Contents/Resources
-mkdir $(BUIDIR)/$(APP).app/Contents/Resources/English.lproj
cp $(OSXDIR)/Info.plist $(BUIDIR)/$(APP).app/Contents/
@#cp $(OSXDIR)/version.plist $(APP).app/Contents/
@#cp $(OSXDIR)/InfoPlist.strings $(APP).app/Contents/Resources/English.lproj/
@#cp $(OSXDIR)/Icons.icns AnotherResource.txt $(APP).app/Contents/Resources/
cp $(BUIDIR)/$(APP) $(BUIDIR)/$(APP).app/Contents/MacOS/$(APP)
echo -n 'APPL????' > $(BUIDIR)/$(APP).app/Contents/PkgInfo
.PHONY: all clean linking osx
.SILENT: $(BUIDIR)/ $(OBJDIR)/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2502 次 |
| 最近记录: |