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 システム: SnowLeopard (64 ビット) 10.6.5。Intel proc、gcc 4.2。

4

2 に答える 2

1

新しい wx-binaries へのパスを 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 に答える