我正在尝试为Windows平台开发一些绘图应用程序。我正在使用Debian并构建了wxWidgets来进行交叉编译,如here所述。
使用MinGW编译器,它工作得很完美,我在Linux下创建Win32应用程序没有问题。但是我遇到了一些wxFreeChart的麻烦。
我跑./configure --host=i386-mingw32 --with-wx-config=/usr/local/i586-mingw32/bin/wx-config
然后我运行'make'并得到关于
无法识别的命令行选项'-mthreads
这里的完整输出:
〜/ dev / freechart / bk-deps g ++ -c -o wxfreechart_lib_legend.o -I./include -I / usr / local / i586-mingw32 / lib / wx / include / i586-mingw32msvc-msw-unicode- static-3.0 -I / usr / local / i586-mingw32 / include / wx-3.0 -D_LARGEFILE_SOURCE = unknown -D__WXMSW__ -mthreads -O2 ./src/legend.cpp g ++:错误:无法识别的命令行选项'-mthreads' make:*** [wxfreechart_lib_legend.o]错误1
我见过的唯一建议是从代码中删除'-mthreads',但我不知道它在哪里(
答案 0 :(得分:0)
上面描述的问题已经解决,但是构建wxFreeChart仍然没有运气。
我得到的下一个错误是关于一些额外的库,我最终解决了
CPPFLAGS="-I/usr/i586-mingw32msvc/include -I~/dev/wxWidgets-3.0.2/include" ./configure --host=i386-mingw32 --with-wx-config=/usr/local/i586-mingw32/bin/wx-config
我不确定从源文件夹~/dev/wxWidgets
中包含 .h 是个好主意,但至少它解决了一些问题。
现在 make 会崩溃,例如:
In file included from /usr/local/i586-mingw32/include/wx-3.0/wx/wx.h:17:0,
from ./include/wx/wxfreechartdefs.h:20,
from ./include/wx/legend.h:13,
from ./src/legend.cpp:10:
/usr/local/i586-mingw32/include/wx-3.0/wx/list.h: In constructor ‘wxListKey::wxListKey(const wxString&)’:
/usr/local/i586-mingw32/include/wx-3.0/wx/list.h:381:40: error: invalid use of incomplete type ‘class wxString’
或
/usr/local/i586-mingw32/include/wx-3.0/wx/containr.h:247:13: error: incomplete type ‘wxNavigationEnabled<wxControl>::BaseWindowClass {aka wxControl}’ used in nested name specifier
make: *** [wxfreechart_lib_legend.o] Error 1