0

我在编译 wxWidget 应用程序时遇到问题。我已经安装了最新版本的库,如下所示:

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

这个框架可能在哪里出现问题或有人遇到过类似的问题?

谢谢。

PS 系统:雪豹(64 位)10.6.5。使用英特尔 proc,gcc 4.2。

4

2 回答 2

1

我通过将新 wx 二进制文件的路径添加到 PATH $ export PATH=/usr/local/Cellar/wxmac/2.8.11/bin:$PATH 来解决这个问题

我正在使用 brew 安装 wxmac。

于 2012-01-31T11:06:50.253 回答
0

我很惊讶你libwx_xxx/usr/lib默认安装前缀是/usr/local. 您确定您的系统上没有多个不兼容的库版本吗?

此外,当使用静态链接时,包含代码依赖项的库必须位于引用它们的目标文件之后,因此该wx-config --libs部分应位于规则的末尾。

于 2010-12-22T17:49:19.670 回答