㈠ 中如下的編譯選項什麼意思
1.編譯目標文件
icc -c -offload-attribute-target=mic -O3 -openmp -std=c99 -DMKL_ILP64 -I/opt/intel/composer_xe_2013_sp1.1.106/mkl/include fft.c -o fft_new.o
2.連接產生可執行文件
icc fft_new.o -openmp -Wl,--start-group /opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/libmkl_intel_ilp64.a /opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/libmkl_intel_thread.a /opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/intel64/libmkl_core.a -Wl,--end-group -Ip-offload-option,mic,compiler,"-Wl,--start-group /opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/mic/libmkl_intel_ilp64.a /opt/intel/composer_xe_2013mkl/lib/mic/libmkl_intel_thread.a /opt/intel/composer_xe_2013_sp1.2.144/mkl/lib/mic/libmkl_core.a -Wl,--end-group" -o fft_new.out
這里的東西較多,看上去比較復雜。
1.對於第一步,編譯出目標文件。這裡面的幾個編譯選項:
-O3 :表示最大可能優化級別。各種循環優化都執行了,並且各種文件級性質也用來改善性能
-openmp:採用了openmp並行編程
-std=c99:ANSI C是89年成為了標准,被ISO認證。之後99年ISO更新了新的C標准。所以-std用來指明編譯的C標准。在某些情況下,如果使用GCC,可能在有沖突的時候使用其他標准,比如:-std=gnu89
-DMKL_ILP64:這個是intel提供的編譯選項,主要是一個平台的指示。
-I:指定頭文件目錄
-o:重命名。
2.對於第二步,鏈接過程。其中幾個編譯選項:
-openmp:同上
-Wl:Wl選項告訴編譯器將後面的參數傳遞給鏈接器。
--start-group 和--stop-group:庫文件參數傳遞的開始和結束。
--offload-option,mic:使用offload方式使用協處理器進行運算
轉自CSDN社區beglorious的專欄
㈡ C#在在一個解決方案裡面有倆個項目,引用時說此項目作為引用將導致循環依賴項,怎麼解決呀
兩個項目不能相互引用。
frmAbout是不是已經引用WindowsFormsApplication1了。
㈢ 多面體模型是編譯器循環優化的未來嗎
我們可以依賴現代編譯器的優化技術而不是使用語言特性...編譯/鏈接/調試 的開發模型將會被繼承下來,但是把 ...『;』的)循環體 賦值語句不會返回布爾類型的結果 ...
㈣ 怎樣編譯 libvlc-qt windows
QtCreator是QT自帶的開發工具,是學習QT非常好的參考資源.
本文提供對編譯QtCreator的簡單描述
(理論上官網發布的都是可以編譯的,但實際編譯時候會遇到一些問題,本文記錄下解決方法)
編譯環境:Windows 7 X64 + Visual Studio 2010 + qt5.0.2
編譯過程:
1.解壓縮qt-creator-2.7.0-src(源碼從qt官網下載)
2.vs2010中,用qt vsaddin打開"qt-creator-2.7.0-src\qtcreator.pro",等待導入完成(需要一定時間,耐心等候)
3.執行編譯。編譯過程可能會有多種錯誤,包括
(a) 錯誤:找不到某個json文件。
解決方法:打開出錯project,在工程中加入json文件就可以。
如果文件系統中不存在這個json文件,則從另外的目錄拷貝一個過來,簡單修改一下內容就可以。
(b) 錯誤:編譯moc生成的cpp文件時,提示找不到某個.h文件。
解決方法:用ultraEdit打開出錯的vcxproj文件,刪除moc.h文件時參數中對該.h文件的強制引用,
(c) 錯誤:找不到DATA_PATH定義。
解決方法:查找出錯工程屬性中預定義變數列表,復制DATA_PATH的預定義內容到源代碼中。
4.修改完編譯錯誤後,重新編譯。因為循環依賴問題,可能要重復多編譯幾次,最終編譯成功。
5.vs2010中,F5運行qtcreator這個project。qtcreator運行成功,
但是會發現qtcreator中的Design標簽頁總是空的,要解決這個問題,繼續執行以下步驟。
6.vs2010中,依次用qt vsaddin打開以下工程,並執行編譯
"qt-creator-2.7.0-src\src\plugins\qmldesigner\qmldesigner.pro"
"qt-creator-2.7.0-src\src\plugins\qmlprojectmanager\qmlprojectmanager.pro"
"qt-creator-2.7.0-src\src\plugins\qmlprofiler\qmlprofiler.pro"
7.運行qtcreator,此時可以發現qtcreator和官網預編譯的版本完全一樣了。
㈤ C#中循環基類依賴於項是什麼意思,能否幫我解決一下這個問題謝謝啦!
循環基類依賴項
就是你繼承循環了一圈
比如
類A繼承類B,類B繼承類C,類C又繼承了類A
這樣在C#中是不允許的。
你好好檢查一下你的類繼承或者是引用什麼的。
㈥ 在開發大C++工程的時候如何判斷和避免循環include
這裡面最重要的是細節部分,和代碼結構問題。
1.代碼結構來自於代碼組織的更大范圍。提
2.倡拆除許多小的班級。擴展到多個文件。文件中並非全部。
3.這很容易說,現實中或多或少會有違法行為。例如,工程需要使用一些常量字元串(或消息的定義,或枚舉值,並有多個變種)。
2.我寧願復制和粘貼小函數一次。這很容易導致代碼重復。摘要應該減少頭文件的重復。需要團隊的人有這種意識,並意識到這是不好的。
3.我相信還有很多人,對問題認識不足,你也會被要求,作為一個不貪的方便。它直接包含一個大的頭文件,它在短期內是非常方便的,它將在很長一段時間的麻煩。
了解一些C++的常用技術。我相信很多人,甚至介詞陳述,都不知道。