Snow Leopard上wxWidgets的问题

时间:2010-12-21 19:45:51

标签: c++ osx-snow-leopard wxwidgets static-linking

我遇到了编译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。

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>