静态链接交叉编译的QAxcontainer

时间:2017-10-09 09:54:20

标签: c++ qt cross-compiling

我正在尝试使用gnu make工具链交叉编译应用程序。以前我已经成功编译了Qt和QAxContainer模块。我似乎正在设置所有必需的环境变量。 使用libtool我使用以下命令链接我的应用程序:

/bin/bash ../libtool  --tag=CXX --tag CXX  --mode=link /home/test/Gridcoin-Research/depends/x86_64-w64-mingw32/share/../native/bin/ccache x86_64-w64-mingw32-g++ -std=c++11 -Wstack-protector -fstack-protector-all   -pipe -O2   -pthread  -Wl,--dynamicbase -Wl,--nxcompat -Wl,--high-entropy-va -mwindows -all-static -L/home/test/Gridcoin-Research/depends/x86_64-w64-mingw32/share/../lib  -o qt/gridcoinresearch.exe qt/qt_gridcoinresearch-bitcoin.o  qt/res/bitcoin-qt.o qt/libgridcoinqt.a  leveldb/libleveldb.a  leveldb/libmemenv.a -L/home/test/Gridcoin-Research/depends/x86_64-w64-mingw32/share/../lib -lboost_system-mt-s -lboost_filesystem-mt-s -lboost_program_options-mt-s -lboost_thread_win32-mt-s -lboost_chrono-mt-s -lqwindows -lqminimal -lQt5Concurrent -lQt5Widgets -lQt5Network -lQt5Gui     -lQt5Core    -lqtharfbuzzng -lqtpcre -lqtpng -lz  -lQt5AxServer -lQt5AxContainer -limm32  -L/home/test/Gridcoin-Research/depends/x86_64-w64-mingw32/share/../lib -L/home/test/Gridcoin-Research/depends/x86_64-w64-mingw32/share/../plugins/platforms -lQt5DBus -L/home/test/Gridcoin-Research/depends/x86_64-w64-mingw32/share/../lib -lqrencode  -ldb_cxx-4.8 -lssl -lcrypto -lminiupnpc -lcurl     -lQt5PlatformSupport -lssp -lcrypt32 -liphlpapi -lshlwapi -lmswsock -lws2_32 -ladvapi32 -lrpcrt4 -luuid -loleaut32 -lole32 -lcomctl32 -lshell32 -lwinmm -lwinspool -lcomdlg32 -lgdi32 -luser32 -lkernel32 -lmingwthrd

应用程序已成功编译linux版本,其中不需要AxContainer模块。两个相关的链接错误是:

undefined reference to `QMetaStringTable::enter(QByteArray const&)'
undefined reference to `QVariantToVoidStar(QVariant const&, void*, QByteArray const &, unsigned int)'

是否可以正确交叉编译QAxContainer?

编辑:构建不是使用标准.pro文件完成的,而是使用gnu automake工具链。只有在交叉编译到windows时才包含qaxcontainer。我静态编译ActiveQt然后在构建过程中链接它。在此过程中,配置检查是否存在QAxContainer,并且能够找到主入口点。

1 个答案:

答案 0 :(得分:0)

问题是缺少Qt5AxBase库,并且链接以错误的顺序完成。要在自我管理的环境中正确链接QAxContainer,需要按顺序包含以下链接标志:

-lQt5AxContainer -lQt5AxBase