2013-04-09 172 views
0

我目前正在Qt中開發跨平臺項目。我目前正在開發Linux(Mint x64),但需要將部分項目部署到Solaris 10服務器。無法在Solaris 10上構建Qt 5.0

我一直在嘗試在solaris上構建Qt5.0.1約3天,但收效甚微!

我已經從here下載了源代碼併成功提取了存檔。

當試圖運行配置腳本時,我首先遇到了通過更改qtbase/configure腳本使用/ bin/bash而不是/ bin/sh修復的語法錯誤。

我有那麼在運行時配置碰上幾個問題:「未啓用QPA平臺插件」

./configure -platform solaris-g++ 
  • 配置不能檢測架構(不破失敗,但...)
  • - 我已經顯式安裝(使用pkgutil)libxcb和xcbutil
  • 當使用-no-QPA平臺後衛標誌,配置完成,則:
    • 我得到的錯誤的分類中的建築,當我運行gmake命令 - J4

的編譯錯誤是:

In file included from ../3rdparty/pcre/pcre16_compile.c:43:0: 
../3rdparty/pcre/pcre_compile.c: In function 'compile_branch': 
../3rdparty/pcre/pcre_compile.c:5193:18: error: 'int64_t' undeclared (first use in this function) 
../3rdparty/pcre/pcre_compile.c:5193:18: note: each undeclared identifier is reported only once for each function it appears in 
../3rdparty/pcre/pcre_compile.c:5194:36: error: expected ')' before 'length_prevgroup' 
../3rdparty/pcre/pcre_compile.c:5264:32: error: expected ')' before 'repeat_max'gcc -c -O2 -Wall -W -D_REENTRANT -fPIC -DQT_NO_LIBUDEV -DQT_NO_EVDEV -DQT_NO_XCB -DQT_NO_USING_NAMESPACE -DQT_BUILD_CORE_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_USE_ICU -DPCRE_HAVE_CONFIG_H -DHB_EXPORT=Q_CORE_EXPORT -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -I../../mkspecs/solaris-g++ -I. -I../../include -I../../include/QtCore -I../../include/QtCore/5.0.1 -I../../include/QtCore/5.0.1/QtCore -Iglobal -I../3rdparty/pcre -I../3rdparty/md5 -I../3rdparty/md4 -I.moc/release-shared -I/usr/sfw/include -o .obj/release-shared/pcre16_dfa_exec.o ../3rdparty/pcre/pcre16_dfa_exec.c 
gmake[3]: *** [.obj/release-shared/pcre16_compile.o] Error 1 
gmake[3]: *** Waiting for unfinished jobs.... 
gmake[3]: Leaving directory `/export/home/emackenzie/Downloads/qt-everywhere-opensource-src-5.0.1/qtbase/src/corelib' 
gmake[2]: *** [sub-corelib-make_first] Error 2 
gmake[2]: Leaving directory `/export/home/emackenzie/Downloads/qt-everywhere-opensource-src-5.0.1/qtbase/src' 
gmake[1]: *** [sub-src-make_first] Error 2 
gmake[1]: Leaving directory `/export/home/emackenzie/Downloads/qt-everywhere-opensource-src-5.0.1/qtbase' 
gmake: *** [module-qtbase-make_first] Error 2 

任何幫助將不勝感激!

[更新] 好了,我已經解決了這個編譯註釋掉pcre_internal.h錯誤:217218219221:

//#if HAVE_STDINT_H 
//#include <stdint.h> 
//#elif HAVE_INTTYPES_H 
#include <inttypes.h> 
//#endif 

現在我收到此錯誤:

io/qtemporarydir.cpp: In member function 'void QTemporaryDirPrivate::create(const QString&)': 
io/qtemporarydir.cpp:150:30: error: 'mkdtemp' was not declared in this scope 
gmake[3]: *** [.obj/release-shared/qtemporarydir.o] Error 1 

我已經檢查了源代碼並且包含了stdlib.h(其中mkdtemp應該聲明),它位於/ usr/include中的文件系統上

再次,任何幫助將是偉大的。

+0

cf.我的相關問題和答案:http://stackoverflow.com/q/20879715/427158 – maxschlepzig 2014-01-02 09:21:15

回答

0

找出系統中哪個頭文件int64_t#include它在pcre_compile.c

+0

我希望有一個更好的解決方案,因爲我編譯的代碼都不是我的,它是所有標準的Qt源代碼。我也相信int64_t沒有在一個地方定義......(有多個不同的頭文件聲明它) – egmackenzie 2013-04-09 15:58:10

+0

你可以自己定義它:[檢查這個](http://stackoverflow.com/questions/13604137/definition-的-的int64-T)。 – karlphillip 2013-04-09 17:32:08