導航:首頁 > 源碼編譯 > 編譯器無法建立之占存文件

編譯器無法建立之占存文件

發布時間:2022-07-01 19:24:06

Ⅰ configure:3925: error: C compiler cannot create executables

C編譯器無法建立可執行文件。
可能的原因:1、已經有一個同名文件了,而且正在打開運行中,尚未關閉。堅決辦法:關閉該可執行文件。
2、在該文件夾沒有足夠的許可權。解決辦法:給該文件夾賦予許可權,或者將可執行文件建立到其他文件夾。

Ⅱ 為什麼c++編譯器未生成有效的可執行文件

編譯只能生成目標代碼 obj文件 還要鏈接才能生成可執行程序

Ⅲ c++中為什麼有些變數在編譯是就由編譯器分配了內存空間,還沒有運行怎麼會佔用內存呢

還沒有運行怎麼會佔用內存呢?!(這一點還要懷疑嗎!?)

所謂在編譯期間分配空間指的是靜態分配空間(相對於用new動態申請空間),如全局變數或靜態變數(包括一些復雜類型的常量),它們所需要的空間大小可以明確計算出來,並且不會再改變,因此它們可以直接存放在可執行文件的特定的節里(而且包含初始化的值),程序運行時也是直接將這個節載入到特定的段中,不必在程序運行期間用額外的代碼來產生這些變數。

其實在運行期間再看「變數」這個概念就不再具備編譯期間那麼多的屬性了(諸如名稱,類型,作用域,生存期等等),對應的只是一塊內存(只有首址和大小),所以在運行期間動態申請的空間,是需要額外的代碼維護,以確保不同變數不會混用內存。比如寫new表示有一塊內存已經被佔用了,其它變數就不能再用它了; 寫delete表示這塊內存自由了,可以被其它變數使用了。(通常我們都是通過變數來使用內存的,就編碼而言變數是給內存塊起了個名字,用以區分彼此)

內存申請和釋放時機很重要,過早會丟失數據,過遲會耗費內存。特定情況下編譯器可以幫我們完成這項復雜的工作(增加額外的代碼維護內存空間,實現申請和釋放)。從這個意義上講,局部自動變數也是由編譯器負責分配空間的。進一步講,內存管理用到了我們常常掛在嘴邊的堆和棧這兩種數據結構。

最後對於「編譯器分配空間」這種不嚴謹的說法,你可以理解成編譯期間它為你規劃好了這些變數的內存使用方案,這個方案寫到可執行文件裡面了(該文件中包含若干並非出自你大腦衍生的代碼),直到程序運行時才真正拿出來執行!

Ⅳ 台達PLC編程 編譯怎麼完不成啊求解

我知道的,你肯定用的WIN7的系統吧,是管理員許可權的問題。

滑鼠右鍵點擊編程軟體:


Ⅳ 我是新手 編譯vs2003的時候提示 無法打開包含文件。請問在vc++目錄改如何添加包含文件。大神

1 頭部#include文件錯誤,#include 後面的包含的文件時,如果使用的是 "<>" 尖括弧的話, 表示讓編譯器在系統頭文件夾中查找對應名字的頭文件, 當使用""引號時,就是讓編譯器在當前程序目錄下查找對應名字的頭文件,如果沒有找到,則編譯器會再在系統頭文件夾中查找該頭文件. 注意#include文件到位置。
2 感覺是編譯器兼容問題,比如:include 「streams.h」有的情況下在vs2003編譯通過的情況下,在vs。net編譯無法通過,改成,include "streams"去掉.h就可以了。

3 有可能是文件整理後移動位置,將與編譯頭文件和cpp文件目錄修改導致錯誤,用記事本打開.dsp文件,找到與編譯cpp文件,少了個與編譯開關所以不能生成與編譯頭文件:.pch
加入開關:# ADD CPP /Yc"。h文件"。例如:
SOURCE=.\StdAfx.cpp
# End Source File
# Begin Source File
發現少了個與編譯開關所以不能生成與編譯頭文件:。pch
加入開關:# ADD CPP /Yc"stdafx.h"
SOURCE=.\StdAfx.cpp
# ADD CPP /Yc"stdafx.h"
# End Source File
# Begin Source File

4 在編譯directshow源碼的時候注意將C:\DXSDK\Samples\C++\DirectShow\BaseClasses下的文件先進性一次編譯。

5 tools->options->directories 里的lib設置問題

6 有的時候需要使用#program comment(lib,"")命令導入一個lib庫文件。讓編譯器在該庫文件中搜索,引入的頭文件。

Ⅵ 編譯器的問題

非常簡單,新新新手最常見的錯誤!
您最大的可能是沒用建立工程!而直接新建C++源文件!第二大可能:您建的工程時選的不是win32 console Application
----------
您應這么做:
1.新建->工程->win32 console Application ->建立空白工程->完成
2.新建->C++源文件->工程名選剛才建的那個工程
3.將代碼拷貝到C++源文件中。編譯運行
4.最重要的是:馬上回來,加分給我!

Ⅶ c#編譯結果error CS1619:無法創建臨時文件

將vc文件夾屬性的安全選項卡下,賦予users用戶控制許可權即可解決該問題。如下圖:

Ⅷ Vim編譯器出現:"php.ini" E509 :無法創建備份文件(請加!強制執行)

估計是 vim 不具備在系統關鍵文件夾建倉文件的許可權吧。
用管理員身分啟動 vim 應該行,或者上網查查解決相關問題的方法。編輯其它位置的文件如果沒有這個問題,那就是這個原因了。

Ⅸ 請問新裝的編譯器,編譯時出現如下問題,怎麼回事需要設置或安裝什麼Makefile is older than Makefile

.0發布了。目前,GCC可以用來編譯C/C++、FORTRAN、java、OBJC、ADA等語言的程序,可根據需要選擇安裝支持的語言。GCC 3.4.0比以前版本更好地支持了C++標准。本文以在Redhat linux上安裝GCC3.4.0為例,介紹了GCC的安裝過程。

安裝之前,系統中必須要有cc或者gcc等編譯器,並且是可用的,或者用環境變數CC指定系統上的編譯器。如果系統上沒有編譯器,不能安裝源代碼形式的GCC 3.4.0。如果是這種情況,可以在網上找一個與你系統相適應的如RPM等二進制形式的GCC軟體包來安裝使用。本文介紹的是以源代碼形式提供的GCC軟體包的安裝過程,軟體包本身和其安裝過程同樣適用於其它Linux和Unix系統。

系統上原來的GCC編譯器可能是把gcc等命令文件、庫文件、頭文件等分別存放到系統中的不同目錄下的。與此不同,現在GCC建議我們將一個版本的GCC安裝在一個單獨的目錄下。這樣做的好處是將來不需要它的時候可以方便地刪除整個目錄即可(因為GCC沒有uninstall功能);缺點是在安裝完成後要做一些設置工作才能使編譯器工作正常。在本文中我採用這個方案安裝GCC 3.4.0,並且在安裝完成後,仍然能夠使用原來低版本的GCC編譯器,即一個系統上可以同時存在並使用多個版本的GCC編譯器。

按照本文提供的步驟和設置選項,即使以前沒有安裝過GCC,也可以在系統上安裝上一個可工作的新版本的GCC編譯器。

1. 下載

在GCC網站上()或者通過網上搜索可以查找到下載資源。目前GCC的最新版本為 3.4.0。可供下載的文件一般有兩種形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是壓縮格式不一樣,內容完全一致,下載其中一種即可。

2. 解壓

根據壓縮格式,選擇下面相應的一種方式解包(以下的「%」表示命令行提示符):

% tar xzvf gcc-3.4.0.tar.gz
或者
% bzcat gcc-3.4.0.tar.bz2 | tar xvf -

新生成的gcc-3.4.0這個目錄被稱為源目錄,用$表示它。以後在出現$的地方,應該用真實的路徑來替換它。用pwd命令可以查看當前路徑。

在$/INSTALL目錄下有詳細的GCC安裝說明,可用瀏覽器打開index.html閱讀。

3. 建立目標目錄

目標目錄(用$表示)是用來存放編譯結果的地方。GCC建議編譯後的文件不要放在源目錄${srcdir]中(雖然這樣做也可以),最好單獨存放在另外一個目錄中,而且不能是$的子目錄。

例如,可以這樣建立一個叫 gcc-build 的目標目錄(與源目錄$是同級目錄):

% mkdir gcc-build
% cd gcc-build

以下的操作主要是在目標目錄 $ 下進行。

4. 配置

配置的目的是決定將GCC編譯器安裝到什麼地方($),支持什麼語言以及指定其它一些選項等。其中,$不能與$或$目錄相同。

配置是通過執行$下的configure來完成的。其命令格式為(記得用你的真實路徑替換$):

% $/configure --prefix=$ [其它選項]

例如,如果想將GCC 3.4.0安裝到/usr/local/gcc-3.4.0目錄下,則$就表示這個路徑。

在我的機器上,我是這樣配置的:

% ../gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java

將GCC安裝在/usr/local/gcc-3.4.0目錄下,支持C/C++和JAVA語言,其它選項參見GCC提供的幫助說明。

5. 編譯

% make

這是一個漫長的過程。在我的機器上(P4-1.6),這個過程用了50多分鍾。

6. 安裝

執行下面的命令將編譯好的庫文件等拷貝到$目錄中(根據你設定的路徑,可能需要管理員的許可權):

% make install

至此,GCC 3.4.0安裝過程就完成了。

6. 其它設置

GCC 3.4.0的所有文件,包括命令文件(如gcc、g++)、庫文件等都在$目錄下分別存放,如命令文件放在bin目錄下、庫文件在lib下、頭文件在include下等。由於命令文件和庫文件所在的目錄還沒有包含在相應的搜索路徑內,所以必須要作適當的設置之後編譯器才能順利地找到並使用它們。

6.1 gcc、g++、gcj的設置

要想使用GCC 3.4.0的gcc等命令,簡單的方法就是把它的路徑$/bin放在環境變數PATH中。我不用這種方式,而是用符號連接的方式實現,這樣做的好處是我仍然可以使用系統上原來的舊版本的GCC編譯器。

首先,查看原來的gcc所在的路徑:

% which gcc

在我的系統上,上述命令顯示:/usr/bin/gcc。因此,原來的gcc命令在/usr/bin目錄下。我們可以把GCC 3.4.0中的gcc、g++、gcj等命令在/usr/bin目錄下分別做一個符號連接:

% cd /usr/bin
% ln -s $/bin/gcc gcc34
% ln -s $/bin/g++ g++34
% ln -s $/bin/gcj gcj34

這樣,就可以分別使用gcc34、g++34、gcj34來調用GCC 3.4.0的gcc、g++、gcj完成對C、C++、JAVA程序的編譯了。同時,仍然能夠使用舊版本的GCC編譯器中的gcc、g++等命令。

6.2 庫路徑的設置

將$/lib路徑添加到環境變數LD_LIBRARY_PATH中,最好添加到系統的配置文件中,這樣就不必要每次都設置這個環境變數了。

例如,如果GCC 3.4.0安裝在/usr/local/gcc-3.4.0目錄下,在RH Linux下可以直接在命令行上執行或者在文件/etc/profile中添加下面一句:

setenv LD_LIBRARY_PATH /usr/local/gcc-3.4.0/lib:$LD_LIBRARY_PATH

7. 測試

用新的編譯命令(gcc34、g++34等)編譯你以前的C、C++程序,檢驗新安裝的GCC編譯器是否能正常工作。

8. 根據需要,可以刪除或者保留$和$目錄。

Ⅹ 為什麼打開電影提示內存不夠編譯器錯誤啊

這是系統提示:
可用內存不足。
錯誤
ID:BC2004
(也就是說,你在播放電影的時候,由於其他進程正在運行,佔用了內存,剩餘資源無法支持電影播放)
防止此情況,你可以試著進行以下操作:
關閉不必要的應用程序、文檔和源文件。
消除不必要的控制項和窗體,以便同一時間載入較少的控制項和窗體。
減少
Public
變數的數目。
檢查可用的磁碟空間。
請通過安裝更多的內存或重新分配內存來增加可用
RAM。
確保不再需要內存時釋放內存。

閱讀全文

與編譯器無法建立之占存文件相關的資料

熱點內容
程序員世界如此精彩 瀏覽:126
建築英語pdf 瀏覽:206
大廠程序員後端技術交流 瀏覽:570
如何搭建伺服器鏡像運行環境 瀏覽:211
進口商品在哪個app買 瀏覽:697
編譯選擇時要注意什麼 瀏覽:621
win10怎麼獲取管理員許可權刪除文件夾 瀏覽:825
php網頁小游戲 瀏覽:937
javahtml轉圖片 瀏覽:954
有什麼耗電小的app 瀏覽:851
java窗口最大化 瀏覽:884
如何把安卓系統更改為蘋果系統 瀏覽:802
程序員國慶文案 瀏覽:938
androidplayerview 瀏覽:372
哪個炒股app權威 瀏覽:774
現貨微盤app哪個好 瀏覽:993
php刪除附件 瀏覽:214
安卓手機怎麼刷點卷 瀏覽:258
java鬼吹燈安卓 瀏覽:887
哪個app可以查到哪裡有什麼疫苗 瀏覽:596