1. Intel C++ Compiler與gcc對比有什麼優缺點
icc 是Intel公司專門為Wintel平台設計,有針對性的做了優化,缺陷也很顯然,既然有針對性,也就不具備通用性。使用icc編譯,可能會使編譯出來的程序有更好的執行效率,但也可能使其在非Intel CPU上運行異常。並且,在某些情況下,即使在Wintel平台上也會崩潰。
gcc的優勢在於其通用性,目前主流的所有平台,它基本上都支持。使用-O3優化編譯後的執行效率,也不錯。
在Win平台上,編譯後執行效率最好的,依然是微軟的vs,這可能與win系統是他們家出的有關。
使用icc帶來的優勢,並不突出,還是建議不要用了。
如果限定在win平台上開發,使用vc或gcc更合適一些。我個人推薦gcc,vc的ide環境過於龐大,不太喜歡,但win平台上主流的c開發工具還是vc,有不少開源的工程都使用它,如果你用到了這些開源代碼,就不得不用了。
2. 如何在QNX下編譯源碼
1.<BUILD_ROOT>是指正確的目錄,如E:\community.qnx.com\svn\repos\coreos_pub,裡面有trunk,源碼在裡面。
2.如果不是在Neutrino
self-hosted下運行( then you will need to tell the build process to ignore
the content of the GNU configure style source moles.) 運行此命令,大概運行幾分鍾。(hide-gnu.sh可下載)
% ksh hide-gnu.sh <BUILD_ROOT>
3.創建目錄(Create a staging directory for installed binaries and headers to go )
% cd <BUILD_ROOT>
% mkdir stage
4.按文檔中方法建立qconf-override.mk文件,也是在<BUILD_ROOT>目錄下。內容如下:
USE_INSTALL_ROOT=1
INSTALL_ROOT_nto=<BUILD_ROOT>/stage
VERSION_REL=6.3.0
注意一定要使用「/」換掉Windows的「\」
5.% export QCONF_OVERRIDE=<BUILD_ROOT>/qconf-override.mk
Windows下用set替代export.也可直接在我的電腦->環境變數里增加。還是要注意"/"問題。
6.基本沒問題了,
內核:
% cd <BUILD_ROOT>/trunk
% make OSLIST=nto CPULIST=x86 hinstall
% make OSLIST=nto CPULIST=x86 install
網路:
% cd <BUILD_ROOT>/tags/6.4.0/GA
% make CPULIST=x86 install
or:
% cd <BUILD_ROOT>/trunk
% make CPULIST=ppc install
等等
3. powerpc 交叉編譯錯誤
libgcc.a 沒有找到:
檢查你的libgcc.a環境變數的設置
$CC --print-libgcc-file-name
若路徑為libgcc.a 證明是當前目錄下的庫文件或者是PATH環境變數下的libgcc.a。
找到你的工具鏈庫的地址
find -name "libgcc.a"
/opt/fsl-qoriq/1.9/sysroots/ppce5500-fsl-linux/usr/lib/powerpc-fsl-linux/4.9.2/libgcc.a3
將此地址加到PATH里去:
export PATH=/opt/fsl-qoriq/1.9/sysroots/ppce5500-fsl-linux/usr/lib/powerpc-fsl-linux/4.9.2/libgcc.a:$PATH
4. 如何把openssl庫在VxWorks下進行編譯或者說把openssl庫編譯成vxworks下能用的.a庫文件,如何去做
下一個完整版的cygwin,免費開源的東西,官網上就有下的
然後將工程文件拷入cygwin工作目錄
在cygwin控制台下CD到工程目錄
與上面那些步驟同時,先進入Tornado的host/x86-win32/bin目錄,把該目錄下的cygwin1.dll刪除或者重命名(建議保留,因為Tornado編譯還要用這個),然後把這個bin目錄設置到windows的path環境變數中。記下bin目錄下所用的編譯器cc和歸檔程序ar的名字(比如PPC的架構就叫ccppc和arppc)
再在cygwin控制台下輸入 CC=ccppc AR=arppc ./configure 運行(PPC為例,如果為其他架構等號後面的值做相應修改)
等配置完畢後打開生成的Makefile文件 找到-IInclude這一個flag修改成-I/cygwindriver/e/tornado/target/h (這里目錄也只是舉例,根據自己情況修改)
再之後加上-I/lib/include
保存
再在cygwin控制台下輸入make運行
這時候應該就可以開始編譯了
但是光做這些修改可能還是會多多少少的報錯
移植細節我這一時半會也沒辦法細說 只能自己看報錯來改了