當前位置:首頁 » 編程軟體 » 清除編譯環境

清除編譯環境

發布時間: 2023-01-14 14:45:03

c語言編寫程序脫離編譯環境能用嗎

源文件一般而言是通用的,只要在對應平台有對應的編譯環境,編譯得到的可執行文件即可運行。不過如果源文件中包含依賴平台特性的代碼,可能在另外的平台上無法編譯或編譯後無法正常運行。
但是不同平台編譯得到的目標文件以及鏈接後的可執行文件往往不兼容。例如早期16位Windows上編譯的程序無法在WinNT內核上運行。所以如果不確定目標平台,最好用源文件編譯一次。
另外一個情況是缺少依賴的運行庫。例如VC++6以後版本的VC的編譯的非託管C++程序需要在運行該的程序的機器上安裝C++運行庫;.NET程序需要在機器上安裝.NET
Framework或.NET
Compact
Framework才能運行等。
====
[原創回答團]

⑵ 如何編譯AMBER14

一、編譯環境與要解決的問題
操作系統:RHEL6
GPU: NVIDIA Tesla K40c
AMBER: 14
硬體:HP Z820
編譯出現的問題:AMBER14不支持使用CUDA7.0, 僅支持6.5或更低版本;RHEL6操作系統安裝CUDA6.5不識別Tesla K40c, 需要CUDA7.0。
二、解決方式
安裝CUDA7.0做為驅動,安裝CUDA6.5作為runtime。
三、具體安裝方式
1, 安裝第三方資源庫:epel-release-6-8.noarch.rpm
wget http://mirrors.opencas.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -i http://mirrors.opencas.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
這個資源庫注釋有問題,需要進行修改
vim /etc/yum.repos.d/epel.repo
修改下面兩行
#baseurl=xxxx
mirrorlist=https://####
為:
baseurl=xxxx
#mirrorlist=xxxx
*如果不修改,有可能yum install cuda回提示epel meta link錯誤
2,安裝CUDA 7
CUDA7作為TESLA K40c的驅動
1)從nvidia網站上下載,CUDA7的Repository文件,rpm安裝
rpm –install cuda-repo-rhel6-7-0-28.x86_64.rpm
2)清除過期meta-data
yum clean expire-cache
3)安裝cuda 7
yum install cuda
註:如果之前沒有修改第三方資源庫epel的話,會出現epel的問題而沒有辦法繼續安裝
成功後,CUDA的目錄為:
/usr/local/cuda
編譯AMBER,需要聲明CUDA_HOME變數:
export CUDA_HOME=/usr/local/cuda
4)嘗試安裝AMBER14
安裝amber
./configure -cuda gnu
make install
*出現錯誤:cuda版本太高,只能用6.5以下的
Error: Unsupported CUDA version 7.0 detected.
AMBER requires CUDA version == 5.0 .or. 5.5 .or. 6.0 .or. 6.5
Configure failed e to the errors above!
3.安裝CUDA6.5,提供Runtime
1)刪除/usr/local/cuda目錄
rm -fr /usr/local/cuda
這個目錄將被CUDA6.5的內容覆蓋
2)卸載cuda-repo-rhel6-7-0-28.x86_64.rpm
rpm -e cuda-repo-rhel6-7xxxx #xxxx代表具體的版本號
3)安裝 CUDA 6.5
按照上面步驟2. 安裝CUDA 7的流程,從下載 cuda-repo-rhel6-6.5-14.x86_64.rpm開始,安裝CUDA6.5
4, 驅動測試
CUDA自帶有examples,編譯進行測試。比如:
設備驗證
cp /usr/local/cuda/samples .
cd samples
cd 1_Utilities
make
./deviceQuery
[amber@amtech deviceQuery]$ ./deviceQuery
./deviceQuery Starting…
——————————————————————————————–
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 2 CUDA Capable device(s)
Device 0: 「Tesla K40c」
CUDA Driver Version / Runtime Version 7.0 / 6.5
CUDA Capability Major/Minor version number: 3.5
Total amount of global memory: 11520 MBytes (12079136768 bytes)
(15) Multiprocessors, (192) CUDA Cores/MP: 2880 CUDA Cores
GPU Clock rate: 745 MHz (0.75 GHz)
Memory Clock rate: 3004 Mhz
Memory Bus Width: 384-bit
L2 Cache Size: 1572864 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent and kernel execution: Yes with 2 engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Enabled
Device supports Unified Addressing (UVA): Yes
Device PCI Bus ID / PCI location ID: 6 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
Device 1: 「Tesla K40c」
CUDA Driver Version / Runtime Version 7.0 / 6.5
CUDA Capability Major/Minor version number: 3.5
Total amount of global memory: 11520 MBytes (12079136768 bytes)
(15) Multiprocessors, (192) CUDA Cores/MP: 2880 CUDA Cores
GPU Clock rate: 745 MHz (0.75 GHz)
Memory Clock rate: 3004 Mhz
Memory Bus Width: 384-bit
L2 Cache Size: 1572864 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent and kernel execution: Yes with 2 engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Enabled
Device supports Unified Addressing (UVA): Yes
Device PCI Bus ID / PCI location ID: 66 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
> Peer access from Tesla K40c (GPU0) -> Tesla K40c (GPU1) : No
> Peer access from Tesla K40c (GPU1) -> Tesla K40c (GPU0) : No
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 7.0, CUDA Runtime Version = 6.5, NumDevs = 2, Device0 = Tesla K40c, Device1 = Tesla K40c
Result = PASS
這個機器有兩個K40c GPU
5, amber14的GPU版編譯
1,單GPU版編譯
cd $AMBERHOME
make clean
./configure -cuda gnu
make install
測試
make test.cud
2,多GPU並行版編譯
cd $AMBERHOME
make clean
./configure -cuda -mpi gnu
make install
測試:
export DO_PARALLEL=』mpirun -np 2′ # for bash/sh
setenv DO_PARALLEL 『mpirun -np 2』 # for csh/tcsh
./test_amber_cuda_parallel.sh

⑶ 如何改變eclipse的java編譯環境

修改Eclipse的編譯器方法:

滑鼠右鍵選擇項目,點擊Properties,選擇Java Compiler,修改Compiler compliance level版本和JRE System Library的版本一樣。

⑷ 怎麼打包發布基於Qt4 Windows的軟體

先從Windows平台開始。 Windows平台下的軟體發布最主要的需求是想辦法找到在你的發布中應該包含哪些必須的文件, 同時要保證應用程序運行時能正確找到這些文件, 發布基於Qt的軟體也是同樣的需求。 就不同的情況一一闡述:
靜態鏈接的情況
靜態鏈接是最簡單的情況,這種情況下需要發布的文件數量是最少的, 只需要發布一個單獨的執行檔外加編譯器相關的dll文件。 這種情況下Qt庫首先要靜態編譯:
configure -static [other options]
nmake sub-src
//如果用mingw編譯,nmake替換成mingw32-make
//sub-src指只編譯src目錄,這樣省去編譯examples等目錄的時間
注意哦,如果你在同一個build目錄用不同的configure選項去編譯Qt, 必須在重新configure之前運行nmake distclean清除以前生成的目標和中間文件, 保證一個干凈的編譯環境,不然有可能會出一些奇怪的鏈接錯誤哦~~
編譯好Qt靜態庫下一步再編譯應用程序:
cd application_dir
nmake clean
qmake -config release
nmake
編譯成功之後應該得到一個可以獨立執行的exe文件, 可以將程序拷貝到其他沒有安裝qt的機器上測試。 需要注意的是這個程序不一定百分之百可以運行,因為編譯器帶的庫仍然是動態編譯的,如果你的目標機里沒有這些庫的話仍然會有運行時的問題。 後面會講到如何用工具來檢查應用程序的依賴。
靜態鏈接方法比較重要的缺陷是無法支持插件, 而且插件不能編譯進程序中,所以插件提供的功能就丟失了。 這樣一來要想用到插件的功能還是要用下面的方法。
動態鏈接的情況
動態鏈接程序的發布需要解決兩個問題, Qt庫需要與應用一起發布, 另外插件也要一起打包,並保證放在適當的位置, 這樣應用程序才能找到它。
動態編譯應用的基礎是先將Qt庫動態編譯(默認參數即是動態編譯),這樣用普通的程序編譯流程就可生成動態編譯的執行檔,使用的命令與上面相同。 我們可以用一個Qt的例子測試前面說的發布方法, 在Qt包里帶的例子Plug & Paint
是個非常合適的測試例子,它既包含應用又自帶插件文件, 可以很好的驗證發布是否正確。 該例子在examples/tools/plugandpaint下。 這個例子如果編譯成功, 得到一個plugandpaint.exe和pnp_basictools.dll、pnp_extrafilters.dll兩個插件文件。
程序打包
第一步,將應用程序和Qt庫拷貝到同一目錄。(Windows下庫的搜索先從當前目錄開始,然後是在系統PATH環境變數指定的路徑查找。)
第二步,檢查應用程序還依賴哪些dll,如編譯器帶的dll或其他系統dll。 參見應用程序的依賴關系一節。
第三步,驗證程序可以在目標系統上正確運行, 將目前包里的文件拷貝到目標系統上,嘗試運行程序。
第四步,發布插件程序。 插件和普通的動態庫的發布不同, 不能簡單的將之拷貝到應用目錄里。 應用程序在運行時會在其對應的plugins目錄下去查找插件。 針對這個例子,發布包應該類似這樣的結構:

模塊

文件名

執行檔 plugandpaint.exe
Basic Tool插件 plugins\pnp_basictools.dll
ExtraFilters插件 plugins\pnp_extrafilters.dll
Qt Core模塊 qtcore4.dll
Qt Gui模塊 qtgui4.dll
除了程序和Qt庫,還有下面的編譯器庫:

VC++ 6.0

VC++ 7.1 (2003)

VC++ 8.0 (2005)

C運行庫 msvcrt.dll msvcr71.dll msvcr80.dll
C++運行庫 msvcp60.dll msvcp71.dll msvcp80.dll

插件的位置除了Qt默認的路徑還可以通過代碼里調用Qt的API來指定, 相應的API是QApplication::addLibraryPath()或QApplication::addLibraryPaths(). 如:
qApp->addLibraryPath(「c:\some\path」);
上述代碼的推薦調用位置是在main函數中,QApplication構造完畢之後。 應用程序會在搜索默認路徑之後去搜索你指定的庫路徑。
Visual Studio 2005
vs2005編譯的程序在發布的時候還需要考慮一些額外的情況,比較麻煩點。 要把manifest文件拷貝到應用程序的目錄, 這個文件包含應用的依賴信息, 在運行時需要用到。 另外,如果你的動態庫的依賴和應用不同,那麼還需要把manifest文件內嵌到dll文件中。 Qt4.1.3之後的版本提供了CONFIG選項來提供內嵌manifest文件的功能, embed_manifest_dll和embed_manifest_exe, 用法是將下面的選項加入pro文件, 如下:
CONFIG+=embed_manifest_exe
默認情況下embed_manifest_dll已經開啟。 關於manifest文件的更多信息參考MSDN的相關文章。
有兩種發布vc運行庫的方法, 一個是安裝vs的運行庫到目標系統中, 另外是將庫打包到應用程序的目錄。 打包vs運行庫很簡單,就是把 <Visual Studio Install Path>\VC\redist\<Architecture>\Microsoft.VC80.CRT拷貝到應用程序目錄,與應用程序一起打包。 如果你在打包運行庫的同時還要發布插件程序,要注意把manifest文件從插件中去掉,不然在一些系統上會導致插件無法載入。 去掉manifest的方法是在插件的pro文件中加入下面的選項:
CONFIG-=embed_manifest_dll
VS系統的運行包可以免費獲得, 只需要將這個安裝包和你的應用安裝包一起發布,並且在安裝你的程序的時候去運行這個安裝包就行了。 比如32位的x86系統, 安裝32bit-x86-vs運行時包。 其他平台對應的包可以在微軟網站找到。

⑸ 用c++編出的程序怎麼脫離編譯環境運行

用c++編出的程序,經過「點擊Build菜單->Build」編譯後,在你建立的項目文件夾中有一個"Debug",或"Release"的文件夾,那裡有一有「***.exe」的可執行文件,那就是你要找的那個直接雙擊就能運行的程序。
一旦編譯了成功了,那個文件夾就會有這樣一個可執行文件,每編譯一次通常就會更新一次。這個可執行文件是脫離編譯環境的,不管安裝不安裝VC++它都能運行。
明白了嗎?

⑹ java的編譯環境

是的,JDK。

如果你用的是MyEclipse等開發工具編譯,那麼最好保證MyEclipse的版本相同,說到底也是保證JDK的版本一致。

⑺ Delphi 7.0源程序如何脫離編譯環境,`在別的機子運行!!!

打開你建立的工程,在Delphi主菜單中選擇Project
---
Options,找到Packages項,其中有一個Build
With
Runtime
Packages的東東,將它前面的勾去掉,然後重新編譯一次,生成的EXE文件就可以直接在其它機器上運行了。

⑻ 用VC6編的軟體如何脫離編譯環境運行

將應用程序打包,方法如下:
(1)打開VB6.0 IDE,載入你的工程,單擊「外接程序」菜單下的「外接程序管理器」。
(2)在彈出的窗體中選擇「打包和展開向導」(最後一項),在載入行為中選擇「載入/卸載」,確定。
(3)再次單擊「外接程序」菜單項,單擊「打包和展開向導」。
(4)單擊「打包」,選擇「標准安裝包」,一直單擊下一步,最後點「完成」,點「關閉」。
(5)此時你的工程文件夾下會有一個名為「包」的文件夾。
(6)單擊「展開」,單擊下一步(2個),此時詢問「您希望在哪裡展開這個包?」,單擊「新建文件夾」

在電腦中其他位置新建一個文件夾,單擊下一步,點「完成」,點「關閉」。
(7)關閉「打包和展開向導」。
(8)在剛才建立的文件夾下就是安裝程序了!(三個文件:工程名.cab setup.exe setup.lst)^_^

注意:如果在其他機器上安裝時提示「需要重新啟動」,通常是你的程序中引用的資源路徑不正確,請用App.path等絕對路徑,如還不行,可能是一些.dll文件版本不兼容或不存在等其它原因,請在打包時載入你用到的所有的庫,若仍有問題聯系我。

E-mail:[email protected]
QQ:157489522

⑼ C++編譯的時候為什麼要先clean

clean是因為有個makefile文件,去清除上一次編譯餘下的文件,這樣做能保證編譯器會檢查到你所有用到的文件並編譯它們,保證編譯出來的程序是最新的。您可以試一下不clean,我想結果會一樣。

⑽ 怎樣退出Vc++6.0的編譯環境

不會吧。把vc關了就行,如果關不掉,到任務管理器里,把msdev.exe殺掉。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:645
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:936
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:632
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:821
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:731
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1066
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:299
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:160
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:852
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:763