Macos 在MAC中使用wxWidgets编译测试程序
操作系统:MAC X 10.7.0 Mac OS X在/usr中安装了一个较旧版本的WXMAC-2.8.8.1,但我在/usr/local中安装了一个较新版本的WXMAC-2.8.12.0。要安装它,我使用以下标志编译新的: 拱门标志=-拱门i386 ./configure CFLAGS=$arch\u flags cxflags=$arch\u flags CPPFLAGS=$arch\u flags LDFLAGS=$arch\u flags OBJCFLAGS=$arch\u flags OBJCXXFLAGS=$arch\u flags-启用unicode-启用调试-禁用共享 然后我编写了一个简单的程序hello2.cpp来测试它:Macos 在MAC中使用wxWidgets编译测试程序,macos,wxwidgets,Macos,Wxwidgets,操作系统:MAC X 10.7.0 Mac OS X在/usr中安装了一个较旧版本的WXMAC-2.8.8.1,但我在/usr/local中安装了一个较新版本的WXMAC-2.8.12.0。要安装它,我使用以下标志编译新的: 拱门标志=-拱门i386 ./configure CFLAGS=$arch\u flags cxflags=$arch\u flags CPPFLAGS=$arch\u flags LDFLAGS=$arch\u flags OBJCFLAGS=$arch\u flags
#include "wx/wx.h"
class HelloWorldApp : public wxApp
{
public:
virtual bool OnInit();
private:
wxButton *button;
};
IMPLEMENT_APP(HelloWorldApp)
bool HelloWorldApp::OnInit()
{
wxFrame *frame = new wxFrame((wxFrame*) NULL, -1, _T("Hello wxWidgets World"));
frame->CreateStatusBar();
frame->SetStatusText(_T("Hello World"));
button = new wxButton((wxFrame *)frame, -2, _T("123"));
frame->Show(TRUE);
SetTopWindow(frame);
return true;
}
我在命令行中使用以下标志编译此测试程序:
g++hello2.cpp/usr/local/bin/wx config-cxflags-libs-o hello2
但我收到了一些警告和错误。我是Mac编程的新手,所以我不知道原因。我只想说:救命
以下是编译的结果:
ld:警告:在/usr/local/lib/libiconv.dylib中,文件是为不受支持的文件格式生成的,该文件不是链接到i386的体系结构
未定义的符号:
_libiconv_打开,引用自:
wxMBConv_iconv::wxMBConv_iconvwchar_t const*在libwx_base_carbonud-2.8.abaselib_strconv.o中
wxMBConv_iconv::wxMBConv_iconvwchar_t const*在libwx_base_carbonud-2.8.abaselib_strconv.o中
wxMBConv_iconv::wxMBConv_iconvwchar_t const*在libwx_base_carbonud-2.8.abaselib_strconv.o中
wxMBConv_iconv::wxMBConv_iconvwchar_t const*在libwx_base_carbonud-2.8.abaselib_strconv.o中
wxMBConv_iconv::wxMBConv_iconvwchar_t const*在libwx_base_carbonud-2.8.abaselib_strconv.o中
wxMBConv_iconv::wxMBConv_iconvwchar_t const*在libwx_base_carbonud-2.8.abaselib_strconv.o中
wxMBConv_iconv::wxMBConv_iconvwchar_t const*在libwx_base_carbonud-2.8.abaselib_strconv.o中
wxMBConv_iconv::wxMBConv_iconvwchar_t const*在libwx_base_carbonud-2.8.abaselib_strconv.o中
_libiconv,引用自:
wxMBConv_iconv::libwx_base_carbonud中的GetMBNulLen const-2.8.abaselib_strconv.o
wxMBConv_iconv::WC2MBchar*,wchar_t const*,无符号长结构libwx_base_carbonud-2.8.abaselib_strconv.o
wxMBConv_iconv::WC2MBchar*,wchar_t const*,无符号长结构libwx_base_carbonud-2.8.abaselib_strconv.o
wxMBConv_iconv::mb2wchar_t*,char const*,无符号长结构libwx_base_carbonud-2.8.abaselib_strconv.o
wxMBConv_iconv::mb2wchar_t*,char const*,无符号长结构libwx_base_carbonud-2.8.abaselib_strconv.o
wxMBConv_iconv::wxMBConv_iconvwchar_t const*在libwx_base_carbonud-2.8.abaselib_strconv.o中
wxMBConv_iconv::wxMBConv_iconvwchar_t const*在libwx_base_carbonud-2.8.abaselib_strconv.o中
_libiconv_close,引用自:
wxMBConv_iconv::~wxMBConv_iconvin libwx_base_carbonud-2.8.abaselib_strconv.o
wxMBConv_iconv::~wxMBConv_iconvin libwx_base_carbonud-2.8.abaselib_strconv.o
wxMBConv_iconv::~wxMBConv_iconvin libwx_base_carbonud-2.8.abaselib_strconv.o
wxMBConv_iconv::~wxMBConv_iconvin libwx_base_carbonud-2.8.abaselib_strconv.o
wxMBConv_iconv::~wxMBConv_iconvin libwx_base_carbonud-2.8.abaselib_strconv.o
wxMBConv_iconv::~wxMBConv_iconvin libwx_base_carbonud-2.8.abaselib_strconv.o
ld:找不到符号
collect2:ld返回1退出状态I卸载wxMac-2.8.12。
I installl wxWidgets-2.9.2./configure-启用unicode-启用调试-禁用共享
我再次使用g++hello2.cpp`/usr/local/bin/wx config-cxflags-libs`-o hello2编译测试程序。只有一个警告:
ld:警告:在/System/Library/Frameworks//QuickTime.framework/QuickTime中,文件中缺少所需的体系结构x86_64
我想没关系