在Mac OSX 10.10上编译WxWidgets

时间:2015-01-08 01:00:43

标签: xcode macos wxwidgets x86-64 osx-yosemite

我试图在我的mac OSX 10.10上编译WxWidgets 3.0.2 我收到以下消息:

  

块引用         ...   ld:找不到架构x86_64的符号   clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)   make:*** [/Users/.../wxWidgets-3.0.2/build_rel/lib/libwx_osx_cocoau-3.0.0.2.0.dylib]错误1

我正在使用这些标志编译

  

../ configure --with-osx_cocoa --with-macosx-version-min = 10.7 --with-macosx-sdk = / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.10.sdk --prefix =" $(pwd)" --with-opengl CC = clang CXX = clang ++ CXXFLAGS =" -stdlib = libc ++ -std = c ++ 11" OBJCXXFLAGS =" -stdlib = libc ++ -std = c ++ 11" LDFLAGS = -stdlib = libc ++ --enable-universal-binary = x86_64 --enable-monolithic --enable-unicode --with-expat = builtin --with-zlib = builtin --with-libtiff = builtin --with- regex = builtin --with-libpng = builtin --with-libjpeg = builtin

如您所见,我按其他主题中的建议添加了enable-universal-binary = x86_64。

如果你可以建议我可能没有添加的其他标志,或者我应该删除 那太好了.. 感谢

4 个答案:

答案 0 :(得分:2)

另一种方式:

brew install wxwidgets

您将在/usr/local/Cellar中编译wxWidgets。

答案 1 :(得分:1)

原则上,这应该有效,但使用--enable-universal-binary=x86_64有什么意义?如果只有一个架构,那么它并不普遍......你可能想要使用--enable-macosx_arch=x86_64代替。

顺便说一下,我认为各种与stdlib相关的选项也是不必要的,clang是10.10下的默认编译器。 --enable-unicode绝对是多余的。

答案 2 :(得分:0)

如果您需要wx3.0.0 osx 10.7+ monolitic,共享库可以从这里获取wxphp stub bundle

图书馆包含在app / contents / resources中,如果需要,可以使用它。但你需要标题c ++,从wx那边获取它。

答案 3 :(得分:0)

作为posted here,您可以使用--with-macosx-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/作为解决方法。关于它有一个固定的issue,可能会在3.0.3上发布。