當前位置:首頁 » 編程軟體 » vs不能編譯

vs不能編譯

發布時間: 2023-06-13 20:28:58

1. 為什麼我的VS2010不能編譯C語言,我新建一個項目以後,再新建一個CPP文件,下面會出現未知范圍

新建的項一般默認為全局范圍。。。從你的截圖中沒法看出你新建的C.cpp文件是屬於頭文件、源文件或是資源文件。。。。

你可以嘗試右鍵單擊源文件那一欄通過彈出菜單新建一個cpp項

我在本機上這樣做出來的是全局范圍。。。。

希望對你有幫助

2. VS2010無法編譯,請問該怎麼辦

項目\屬性\配置屬性\清單工具\輸入和輸出\嵌入清單:原來是「是」,改成「否」。
試試

3. 我用vs2013打開.c文件無法編譯

要新建工程才行,VC2010不像VC6.0那樣直接自動幫你新建工程了;
點擊 文件-> 新建項目 找到 C++ 裡面的控制台程序,根據向導一步步新建工程(可以新建一個 Hello wrold 工程),再試試。

4. vs不能編譯qt

1. 下載qt的安裝包和vs2011的qt插件,大家可以到下面的地址進行下載
BBS:
官網:

本人是在BBS上找到的,官網上沒仔細去找了(英文太多)。
2. 安裝qt sdk
安裝其實很簡單了,基本上一路回車即可,主要是要注意下qt的安裝路徑最好安裝在全英文路徑而且中間沒有空格, 安裝好後,可以運行開始菜單裡面的qt demo,直觀感受下qt的強大功能!

界面非常炫酷

4. 編譯qt
qt默認使用mingw進行編譯,如果要使用vs2011開發,需要將qt重新編譯。

入開始菜單microsoft visual studio 2011,visual studio tools,visual studio
command prompt (2011),需要注意的是,這裡面必須是使用visual studio command prompt
(2011),不能使用cmd的dos窗口

進入qt的安裝目錄後,執行cd qt,進入qt的根目錄

運行命令 configure -platform win32-msvc2011,o(選擇opensource模式)回車,y(同意license)回車
k1988插入:
在編譯過程中,為了加快速度,可以對configure適當的加些參數,比如-fast,-no-webkit(這個貌似挺耗時的)

選擇的命令行:configure -platform win32-msvc2011 -fast -debug-and-release
-no-webkit -no-script -no-qt3support -nomake demos -nomake examples
-nomake tools -mp
其中:mp是多線程編譯選項。
接著就會自動配置qt的編譯環境,等配置結束後,運行nmake,回車,qt就會開始漫長的編譯過程,這段時間非常長,需要4個小時以上。
liuyu遇到的問題:(自己遇到過,當時沒記錄下來,但是記得編譯過程中遇到這些問題)
1.DefaultLocalizationStrategy.cpp
C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/INCLUDE/yvals.h(21) : war
ning C4005: 『_HAS_TR1』 : macro redefinition
command-line arguments : see previous definition of 『_HAS_TR1』
platform/DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constant
platform/DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected en
d of file in macro expansion
NMAKE : fatal error U1077: 『「C:/Program Files (x86)/Microsoft Visual Studio 10.0
/VC/BIN/cl.EXE」』 : return code 『0x2』
Stop.
NMAKE : fatal error U1077: 『「C:/Program Files (x86)/Microsoft Visual Studio 10.0
/VC/BIN/nmake.exe」』 : return code 『0x2』
Stop.
NMAKE : fatal error U1077: 『cd』 : return code 『0x2』
Stop.
NMAKE : fatal error U1077: 『cd』 : return code 『0x2』
Stop.
解決辦法:
打開文件…/Qt4.8.5/src/3rdparty/webkit/Source/WebCore
/platform/DefaultLocalizationStrategy.cpp
找到327行刪除的引號「」

2.NMAKE:fatal error U1077. return code 0x2
產生原因:找不到代碼文件中包含的頭文件
解決辦法:cmd下進入到vs安裝路徑/VC/Bin下,執行vcvars32,此時會執行vcvas32.bat自動為vs設置環境變數 (這個也試過好幾回,沒效果,依然出現上面錯誤)試試下面的就解決了:

經分析,是環境變數設置的CURR_DIR和TARGETDIR值中含有空格導致了此問題。
通過下面的命令刪除環境變數即可。
在d:/Qt/4.8.6目錄下鍵入下面的命令即可(不是很明白)

接著繼續nmake命令 回車換行
k1988插入:(本人未找到以下文件)
請先刪除
src/3rdparty/webkit/webcore/tmp/moc/debug_shared/mocinclude.tmp
src/3rdparty/webkit/webcore/tmp/moc/release_shared/mocinclude.tmp
/src/script/tmp/moc/debug_shared/mocinclude.tmp
/src/script/tmp/moc/release_shared/mocinclude.tmp
等文件,否則編譯有可能失敗。
k1988插入:
這一步很重要,關繫到是否能用qt-vs-addin。
把d:/qt/bin下的.qmake.cache和configure.cache這兩個文件手動備份到另一個地方。
(本人未嘗試過)然後使用nmake clean進行清理掉那些中間文件(pdb,obj等文件),清理出4個g左右的空間。
nmake confclean是清理配製文件,占的空間不大,可以不執行了。這個時候再把剛備份的.qmake.cache和configure.cache拷回原處。
5.配置vs2011的qt開發環境(vs2011最好是英文版本,qt對vs2011中文版本可能支持的不好)
等qt編譯好後就可以配置vs2011的開發環境了,進入vs2011,選擇qt菜單,qt option,進入下圖界面
k1988插入:

步驟編譯好了,用qt助手paths加進去,不知為何ok鍵不亮, 紅字提示:qt in the given path built using
mingw 這個是qt插件的bug,得手工改注冊表 hkey_current_user/software/trolltech/versions/
下增加一個子項 qt486(需要的名稱) 子項下面增加一個數值 installdir,值就是你要配置的qt路徑
ps:如果沒有versions這個文件夾就新建一個吧!
(這里確實是個坑,僅僅修改注冊表居然沒有用,還要去qt的lib文件夾下刪掉兩個文件 –>>刪除qt的lib目錄下(我的路徑是D:/Qt/4.8.6/lib)的libqtmain.a and libqtmaind.a 兩個文件。)

點擊add,添加qt的安裝目錄,並取名字,我這里使用qt的4.8.6版本為名稱,選擇ok後即可。
6.新建或者導入qt項目
可以通過在vs2011新建一個qt項目

5. 為什麼C程序文件無法在vs2010上編譯,按鈕是灰色的呀

你要把這個 C 文件包含在一個 VC++ 項目里才可以編譯啊
或者你直接用 VS 命令行工具編譯這個也行

6. vs2013運行出現問題,編譯不了,提示fatal error C1069: 無法讀取編譯器命令行

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庫文件。讓編譯器在該庫文件中搜索,引入的頭文件。

7. vs不能編譯qt

1. 建立環境變數
QMAKESPEC win32-msvc2011 // 注意
QTDIR S:\QT\4.8.4 // Qt的安裝目錄
Path S:\QT\4.8.4\bin;
注意: QMAKESPEC 還是 win32-msvc2011 因為如果要改成win32-msvc2012,需要改很多相關的配置。又麻煩又不安全。而且使用win32-msvc2011並不影響我們的結果。

2. 修改 mkspecs\win32-msvc2011\qmake.conf
將 QMAKE_COMPILER_DEFINES += _MSC_VER=1600 WIN32 當中的1600改成1700

QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
改為
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t

3. 在開始菜單中找到 VS2012 x86 Native Tools Command Prompt 並運行
這一步非常簡單但很重要,一定要選擇VS2012目錄下的bat文件

4. 在控制台中,切換到Qt的安裝目錄下。使用如下參數進行配置
configure.exe -platform win32-msvc2011 -opensource -debug-and-release -shared -qt-sql-sqlite -plugin-sql-sqlite -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -qmake -process -rtti -dbus -webkit -script -scripttools -no-dbus

5. nmake 開始編譯。 不過在編譯過程中會遇到幾個錯需要手動修改一下代碼。

6. 第一個錯誤如下:
.\wtf/HashSet.h(180) : error C2664: 'std::pair::pair(const std::pair &)' : cannot convert parameter 1 from 'std::pair' to 'const std::pair &'
在Qt的Src目錄搜索這個HashSet.h
將180行所在的函數以及它下面的函數用下面的代碼替換:
template
inline pair<typename HashSet::const_iterator, bool> HashSet::add(const ValueType &value)
{
auto p= m_impl.add(value);
return make_pair(typename HashSet::const_iterator(p.first), p.second);
}
template
template
inline pair<typename HashSet::iterator, bool>
HashSet::add(const T& value)
{
typedef HashSetTranslatorAdapter Adapter;
typedef typename HashSet::iterator iter_type;
auto& temp = m_impl.template addPassingHashCode(value, value);
return make_pair((iter_type)temp.first, temp.second);
}
7. 繼續 nmake遇到第二個錯誤
platform\DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constant
platform\DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected end of file in macro expansion
這個錯誤的原因是因為代碼裡面的非英文的引號造成的。
原始的錯誤代碼如下:
return WEB_UI_STRING("Look Up 「」", "Look Up context menu item with selected word").replace("", (selectedString));
大家注意 單詞前後的引號。就是它造成編譯報錯。修改成下面的代碼
return WEB_UI_STRING("Look Up \"\"", "Look Up context menu item with selected word").replace("", (selectedString));

8. 再次nmake,好了到這里為止,就剩下漫長的等待了。我一般是睡覺之前編譯,一晚上的時間足夠了。

9. 補充,有個開源工具叫jom,也是qt官方的,它支持多核編譯,可以大大加快編譯速度。
使用的方法也很簡單jom –j 8 你有幾個核就寫幾。我是8個核

注意最後兩個DLL是VS2012的運行時庫,說明我們已經編譯成功了!

8. 我寫的c++為什麼在VS上不能編譯

少了 <string> 頭文件。

在 #include <iostream> 下增加 #include <string>

9. 為什麼我的vs2010 總是編譯失敗

轉載:
連接器LNK是通過調用cvtres.exe完成文件向coff格式的轉換的,所以出現這種錯誤的原因就是cvtres.exe出現了問題。

在電腦裡面搜索一下cvtres.exe,發現存在多個文件,使用最新的cvtres.exe替換老的文件即可,替換之前記得備份一下,如果不對,可以替換回來。

例如:我的電腦裡面安裝了vs2010,最近更新了系統,打了一些補丁,結果就出現這種錯誤了。在電腦裡面搜索發現
C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
C:\Windows\winsxs\x86_netfx-cvtres_for_vc_and_vb_b03f5f7f11d50a3a_6.1.7600.16385_none_ba476986f05abc65
C:\Windows\Microsoft.NET\Framework\v4.0.30319

這三個路徑裡面都有cvtres.exe文件,於是我嘗試使用第二個路徑裡面的文件替換第一個路徑的文件,問題解決。

參考資料如下:
http://stackoverflow.com/questions/10888391/link-fatal-error-lnk1123-failure-ring-conversion-to-coff-file-invalid-or-c/14144713#14144713

熱點內容
美國雲伺服器快還是香港快 發布:2025-02-09 09:34:33 瀏覽:988
怎麼解壓qq文件 發布:2025-02-09 09:18:14 瀏覽:581
安卓最新怎麼調靈敏度更穩 發布:2025-02-09 09:12:44 瀏覽:400
豌豆莢如何用安卓手機下載 發布:2025-02-09 09:11:57 瀏覽:213
吃雞腳本輔助 發布:2025-02-09 09:09:29 瀏覽:6
sessionidpython 發布:2025-02-09 09:08:53 瀏覽:276
華為手機驗證碼和密碼忘了是多少 發布:2025-02-09 08:53:53 瀏覽:799
逆戰筆記哪個配置好玩 發布:2025-02-09 08:53:04 瀏覽:600
怎麼打開電腦雲伺服器 發布:2025-02-09 08:36:01 瀏覽:220
日元對人民幣演算法 發布:2025-02-09 08:35:52 瀏覽:40