我遇到了编译wxWidget-application的问题。我安装了最新版本的库,如下所示:
set arch_flags="-arch x86_64 "
./configure -with-osx_cocoa --disable-shared --disable-compat24 --enable-unicode --enable-universal-binary CFLAGS="$arch_flags" CXXFLAGS="$arch_flags" CPPFLAGS="$arch_flags" LDFLAGS="$arch_flags" OBJCFLAGS="$arch_flags" OBJCXXFLAGS="$arch_flags"
sudo make install
我正在尝试使用:
编译一个简单的hello-world示例WXWIDGETS = -I/usr/local/include/wx-2.9/
CXXFLAGS = -O2 -g -Wall -Wextra -fmessage-length=0
CXX = $(shell wx-config --cxx)
PROGRAM = wxProjectExample
OBJECTS = $(PROGRAM).o
# implementation
.SUFFIXES: .o .cpp
.cpp.o :
$(CXX) -c `wx-config --static=yes --libs` `wx-config --static=yes --cxxflags` -o $@ $<
all: $(PROGRAM)
$(PROGRAM): $(OBJECTS)
$(CXX) -o $(PROGRAM) $(OBJECTS) `wx-config --libs`
clean:
rm -f *.o $(PROGRAM)
但在链接时编译失败:
ld: warning: in /System/Library/Frameworks//QuickTime.framework/QuickTime, missing required architecture x86_64 in file
ld: warning: in /usr/lib/libwx_macud-2.8.dylib, missing required architecture x86_64 in file
Undefined symbols:
"wxWindowBase::DoSetVirtualSize(int, int)", referenced from:
vtable for MyFramein wxProjectExample.o
哪里可能是一个问题,或者有人遇到与此框架类似的问题?
THX。
PS 系统:SnowLeopard(64位)10.6.5。用intel proc,gcc 4.2。
答案 0 :(得分:1)
我通过将新的wx-binaries的路径添加到PATH来修复此问题 $ export PATH = / usr / local / Cellar / wxmac / 2.8.11 / bin:$ PATH
我正在使用brew来安装wxmac。
答案 1 :(得分:0)
当您在默认安装前缀libwx_xxx
时/usr/lib
/usr/local
时,我感到很惊讶。您确定系统上没有多个不兼容的库版本吗?
此外,当使用静态链接时,包含代码依赖关系的库必须在引用它们的对象文件之后,因此wx-config --libs
部分应位于规则的末尾。< / p>