Некоторое время назад на Snow Leopard я использовал следующие параметры конфигурации для создания wxWidgets для OSX:
../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.
Имейте в виду, что в /opt/bin/
может быть более старая версия wxWidgets.Из-за новых обновлений wxWidget я предпочитаю помещать скомпилированную версию wxWidgets в мою домашнюю папку, чтобы следить за всеми файлами.Если вы установите его в свои системные пути, вы можете потерять обзор.Теперь может случиться, что вы не используете версию wx-config, которую вы хотели использовать.
Для компиляции ваших собственных приложений wxWidget я рекомендую создать свой собственный Makefile.Ваша команда компиляции выглядит уже хорошо, но позвольте мне дать вам совет.После --libs
попробуйте использовать флаги, такие как core
и base
для сохранения, все OSX Frameworks будут добавлены в вашу компиляцию.
Вот простой пример 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)/