Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode WxWidgets/GCC/macosx:如何正确构建和链接WxWidgets库?_Xcode_Macos_Gcc_Wxwidgets - Fatal编程技术网

Xcode WxWidgets/GCC/macosx:如何正确构建和链接WxWidgets库?

Xcode WxWidgets/GCC/macosx:如何正确构建和链接WxWidgets库?,xcode,macos,gcc,wxwidgets,Xcode,Macos,Gcc,Wxwidgets,我正在尝试将一个基于WxWidgets 2.8.9的windows应用程序移植到MacOS X。我已经成功地编译了所有程序,除了一些缺少的与WxWidgets相关的符号。我尝试过用命令行和XCode编译WxWidgets,也尝试过几种不同的配置选项,但都没有正常工作。WxWidgets Wiki上有一些关于这方面的文章,但大多数信息都过时了,没有一篇解决了我的问题 我得到的最接近的方法是在命令行中使用 ./configure --enable-monolithic make 然后,我通过将“w

我正在尝试将一个基于WxWidgets 2.8.9的windows应用程序移植到MacOS X。我已经成功地编译了所有程序,除了一些缺少的与WxWidgets相关的符号。我尝试过用命令行和XCode编译WxWidgets,也尝试过几种不同的配置选项,但都没有正常工作。WxWidgets Wiki上有一些关于这方面的文章,但大多数信息都过时了,没有一篇解决了我的问题

我得到的最接近的方法是在命令行中使用

./configure --enable-monolithic
make
然后,我通过将“wxMac-2.8.9/lib/libwx_mac-2.8.a”添加到XCode项目设置中的“其他链接器标志”来链接库

但这给了我以下链接错误:

“wxOnAssert(字符常量*,int,字符常量*,字符常量*,字符常量*)”,引用自: wxStringBase::MyFrame.o中的wxStringBase(wxStringBase const&) wxCloseEvent::MyFrame.o中的否决权(bool) wxStringBase::tgamestingsform.o中的wxStringBase(wxStringBase const&) wxCheckBoxBase::tgamestingsform.o中的DoSet3StateValue(wxCheckBoxState) TGameSettingsForm.o中的wxCheckBoxBase::DoGet3StateValue()常量 wxStringBase::非ogamestates.o中的wxStringBase(wxStringBase const&) wxStringBase::twxinValidRecodeform.o中的wxStringBase(wxStringBase const&)

“\u iconv\u close”,引用自: wxMBConv_iconv::~wxMBConv_iconv()在libwx_mac-2.8.a(monolib_strconv.o)中 wxMBConv_iconv::~wxMBConv_iconv()在libwx_mac-2.8.a(monolib_strconv.o)中 wxMBConv_iconv::~wxMBConv_iconv()在libwx_mac-2.8.a(monolib_strconv.o)中 wxMBConv_iconv::~wxMBConv_iconv()在libwx_mac-2.8.a(monolib_strconv.o)中

“wxAppConsole::OnAssert(字符常量*,int,字符常量*,字符常量*)”,引用自: MyWxApp3 wxstaticApp.o中CMyWxApp3的vtable

“_iconv”,引用自: libwx_mac-2.8.a(monolib_strconv.o)中的GetMBNulLen()常量 wxMBConv_iconv::WC2MB(char*,wchar_t const*,无符号长)构造libwx_mac-2.8.a(monolib_strconv.o) wxMBConv_iconv::WC2MB(char*,wchar_t const*,无符号长)构造libwx_mac-2.8.a(monolib_strconv.o) wxMBConv_iconv::MB2WC(wchar_t*,char const*,unsigned long)构造libwx_mac-2.8.a(monolib_strconv.o) wxMBConv_iconv::MB2WC(wchar_t*,char const*,unsigned long)构造libwx_mac-2.8.a(monolib_strconv.o) wxMBConv_iconv::libwx_mac-2.8.a(monolib_strconv.o)中的wxMBConv_iconv(char const*)

“wxAppConsole::OnAssertFailure(字符常量*,int,字符常量*,字符常量*,字符常量*)”,引用自: MyWxApp3 wxstaticApp.o中CMyWxApp3的vtable “_iconv_open”,引用自: wxMBConv_iconv::libwx_mac-2.8.a(monolib_strconv.o)中的wxMBConv_iconv(char const*) wxMBConv_iconv::libwx_mac-2.8.a(monolib_strconv.o)中的wxMBConv_iconv(char const*) wxMBConv_iconv::libwx_mac-2.8.a(monolib_strconv.o)中的wxMBConv_iconv(char const*) wxMBConv_iconv::libwx_mac-2.8.a(monolib_strconv.o)中的wxMBConv_iconv(char const*) ld:找不到符号 collect2:ld返回了1个退出状态

如果可能的话,我更喜欢动态链接,而不是上面使用的静态链接。然而,就目前而言,我很乐意让它运行起来。如果有人能给我(或指点我)一个关于如何编译和链接WxWidgets库的工作步骤描述,我将非常感谢

谢谢


Adrian

我没有在MacOS下构建wx,但我确实在Windows和Linux下广泛使用它。您链接的页面上的说明与Linux下的说明非常相似,上面写着:

在make之后,您将发现 在您的文件夹下构建库(例如, 构建版本)。这也是 相应的wx配置为


Linux下的wx config脚本使构建项目变得轻而易举,您只需使用命令
wx config--cxxflags
获取gcc所需的编译标志,并
wx config--libs
获取链接所需的所有库。在构建环境(如Code::Blocks)下,您可以在项目设置中使用这些命令,但我不熟悉XCode-但最糟糕的情况是,您只需要复制wx配置脚本列出的编译器和链接器选项。

我没有在MacOS下构建wx,但我确实在Windows和Linux下广泛使用它。您链接的页面上的说明与Linux下的说明非常相似,上面写着:

在make之后,您将发现 在您的文件夹下构建库(例如, 构建版本)。这也是 相应的wx配置为


Linux下的wx config脚本使构建项目变得轻而易举,您只需使用命令
wx config--cxxflags
获取gcc所需的编译标志,并
wx config--libs
获取链接所需的所有库。在诸如Code::Blocks之类的构建环境下,您可以在项目设置中使用这些命令,但是我不熟悉XCode-但最糟糕的情况是,您只需要复制wx配置脚本列出的编译器和链接器选项。

wxOnAssert-相关错误意味着您在调试中构建库(
\uuuuwxdebug\uuuuuu
已定义,
NDEBUG
未定义),而wxWidgets库是在发布版本中构建的(
\uuuwxdebug\uuuuu
未定义)。解决方案很简单:不要这样做


如果您需要构建调试版本,也可以使用
--启用调试
配置参数在调试模式下构建wxWidgets,并使用
wx config--debug…
获取适当的标志。

wxOnAssert
-相关错误意味着您在调试模式下构建库(
\WXDEBUG\uu
已定义,
未定义NDEBUG
)虽然wxWidgets库是在发布版本中构建的(未定义)

如果你