我有一些跨平臺的代碼,如#include <thread>
等一些C++ 11功能。我將很快使用QNX 6.6板,並且我想知道我的代碼是否可以在其上編譯,以及哪些功能可用。我可以在QNX中使用C++ 11嗎?
QCC是官方的QNX C++編譯器,但我找不到任何文檔引用了哪些C++ 11功能,甚至不支持其通用的C++功能。這是GCC還是它自己的東西的包裝?無論哪種方式,我可以在此平臺上獲得或編譯其他編譯器嗎?
我有一些跨平臺的代碼,如#include <thread>
等一些C++ 11功能。我將很快使用QNX 6.6板,並且我想知道我的代碼是否可以在其上編譯,以及哪些功能可用。我可以在QNX中使用C++ 11嗎?
QCC是官方的QNX C++編譯器,但我找不到任何文檔引用了哪些C++ 11功能,甚至不支持其通用的C++功能。這是GCC還是它自己的東西的包裝?無論哪種方式,我可以在此平臺上獲得或編譯其他編譯器嗎?
從我所知道的qcc
只是在內部使用gcc
。正因爲如此,您可以使用QNX決定將其包裝中的gcc
版本提供的所有功能。
從release notes of QNX 6.6 GCC 4.7來看時:
該發行說明提供了有關gcc信息的鏈接4.7但我認爲this link可以更好地顯示支持哪些特定功能。鏈接頁面上的信息太多,因爲我不會複製它。但實質上鍊接狀態如下:
GCC provides experimental support for the 2011 ISO C++ standard. This support can be enabled with the -std=c++11 or -std=gnu++11 compiler option ... GCC's C++11 mode implements much of the C++11 standard produced by the ISO C++ committee
qcc使用的gcc的版本確實支持C++ 11規範。我用過它。只需在編譯器行中添加-std=c++11
即可。
我在QNX 6.6上發現了一個C++ 11支持的問題。這是在2014年7月,所以事情可能已經改變。 QNX 6.6附帶的C++ 11庫中矢量初始化(std::vector<int> {1,2, 3, 4};
)的支持被破壞。代碼會乾淨地編譯,但是在運行時會相當隱密地失敗。再次,我目前不知道這個問題的現狀,所以YMMV。
而@Marged的回答似乎涵蓋你的問題的絕對每一個重要的方面,我想補充的是,還可能得到的所有的GNU開發工具更新的版本(如GCC,GDB或使 ..)。這是QNX工作人員正式提供的「僅供實驗使用」,我猜。但到目前爲止,我只與他們有過良好的經歷。
退房QNX的更新Core Development Tools
(您需要首先註冊到QNX社區門戶打開鏈接)
然後,您可以更新您的Linux開發的系統一樣, :
host
和target
文件夾/../qnx650/host/linux/x86/etc/qcc/gcc/default
$ sudo apt-get install lib32stdc++6
$ i486-pc-nto-qnx6.5.0-g++: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
1正式文本:「QNX Momentics的一部分包含了穩定版本的核心開發工具。您可以下載目前正在通過此項目開發的這些工具的更新版本,並從之前的增強功能中獲益!「
我只有這個問題:'QtCore/qglobal.h:39:error:cstddef:沒有這樣的文件或目錄#include
聲音更多l您的QT環境未正確安裝和配置(Qt Creator)。你可能使用MS Visual Studio? TBH,我還沒有將QT與QNX開發環境結合使用,所以我在這裏沒有多大的幫助。 –
您的Airforce使用的是QNX嗎?;-)據我所知,qcc只是使用'gcc',這取決於QNX 6.6使用哪個gcc。快速搜索顯示QNX 6.6正在使用gcc 4.7(http://www.qnx.com/developers/articles/rel_5849_7.html),這裏列出了支持的功能gcc 4.7:https://gcc.gnu.org/projects/cxx0x.html – Marged
@Marged我會回答這個問題,這個問題和任何人想要得到這個問題一樣好。 – user4581301