国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

visual studio 2008 編譯項(xiàng)目出現(xiàn)層次不窮問題枚舉

這篇具有很好參考價(jià)值的文章主要介紹了visual studio 2008 編譯項(xiàng)目出現(xiàn)層次不窮問題枚舉。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、嚴(yán)重性 代碼 說明 項(xiàng)目 文件 行 禁止顯示狀態(tài) 錯誤 C1047 對象或庫文件“.lib”是使用與其他對象(如“x64\Release\main.obj”)不同的

嚴(yán)重性 代碼 說明 項(xiàng)目 文件 行 禁止顯示狀態(tài)
錯誤 C1047 對象或庫文件“.\lib\SceneTempCal.lib”是使用與其他對象(如“x64\Release\main.obj”)不同的編譯器版本創(chuàng)建的;請使用相同的編譯器重新生成所有對象和庫 SceneTest E:\osg\work\ThermalCharacteristics_20220628\SceneTest\LINK 1
visual studio 2008 編譯項(xiàng)目出現(xiàn)層次不窮問題枚舉,C++,visual studio,c++

1、錯誤原因

VS2019 或者其他編譯器VS2008開發(fā),之前一直用的Debug模式,代碼編譯正常

最近改為Release模式,一編譯就出現(xiàn)這個錯誤:

LINK : fatal error C1047: 對象或庫文件“.lib”是使用與其他對象(如“x64\Release\main.obj”)不同的編譯器版本創(chuàng)建的;請使用相同的編譯器重新生成所有對象和庫

網(wǎng)上搜了一下,說是:

“我這幾天也遇到了這個問題,用別人提供的lib,在vs2019下 debug模式可以運(yùn)行,但release模式下就不行,出現(xiàn)了和你一樣的錯誤。開始我還以為是lib不兼容,最后發(fā)現(xiàn)這個lib在LTCG下不能被解析,做如下改正即可:

Release模式下->配置屬性->高級->全程序優(yōu)化->使用鏈接時間代碼生成 將這里的默認(rèn)項(xiàng) “使用鏈接時間代碼生成”改為“無全程序優(yōu)化”。 接下來就可以運(yùn)行了。
visual studio 2008 編譯項(xiàng)目出現(xiàn)層次不窮問題枚舉,C++,visual studio,c++
visual studio 2008 編譯項(xiàng)目出現(xiàn)層次不窮問題枚舉,C++,visual studio,c++

一般低版本生成的lib都是可以被高版本編譯器所用的,這個是兼容性的基礎(chǔ),呵呵!”

于是 改屬性吧,改為 無全程序優(yōu)化后,會報(bào)個另一個錯,心想不能這么一直搞下去啊,肯定是哪不去了。

升級后重編譯 也提示這個錯,

但是這一次 屬性里去掉無全程序優(yōu)化后 再編譯就通過了。

搞不懂,一個lib庫 編譯起來怎么還有這種情況?

屬性->常規(guī)->項(xiàng)目默認(rèn)值->全程序優(yōu)化 將這里的默認(rèn)項(xiàng) “使用鏈接時間代碼生成”改為“無全程序優(yōu)化”。

這樣設(shè)置后很多同學(xué)貌似解決了這個問題 ,然而并木有包括我。。。

記錄一下,但是呢又出現(xiàn)了后面問題。

編譯會提示新的錯誤:
fatal error C1900: “P1”(第“20081201”版)和“P2”(第“20070207”版)之間 Il 不匹配
。。。。。。。。。。。。。。。

繼續(xù)。。。

原因:鏈接時使用了某些用更新的編譯器編譯的LTCG(Link Time Code Generation)的library。之所以x86是正常的,是因?yàn)楹芮涉溄訒r使用的x86 lib是普通lib,而amd64 lib是LTCG lib。

說實(shí)話看不懂這是啥庫。

解決方案兩種:

  • 1)更新當(dāng)前使用的編譯鏈接工具,使其與lib匹配。當(dāng)然,這樣編譯出來的二進(jìn)制文件可能會有所改變(優(yōu)化可能不同),所以可能需要重新測試。
  • 2)使用不帶LTCG的library

說了等于沒說,而且我覺得我這情況也不一樣,因?yàn)樵诹硗庖慌_機(jī)器上編譯是OK的。

后來我自己解決方法是下載:vs2008出現(xiàn)這樣的錯誤是由于版本沒有升級,在官網(wǎng)下載了一個升級包vs2008sp1,安裝后程序運(yùn)行正確。

這時我才意識到,所用的.lib庫是在一個升級版的vs2008上編譯得到的,至于在releasedebug模式下出現(xiàn)的錯誤不一致,我就不明白了。

既然這個lib庫是在vs2008上編譯的,vs2010應(yīng)該是可以兼容使用的,我又檢查了最開始在vs2010下運(yùn)行的這個程序的配置,是在release模式下運(yùn)行的,我改為debug模式運(yùn)行后正確,檢查了releasedebug的配置,發(fā)現(xiàn)“項(xiàng)目->屬性->配置屬性->常規(guī)->全程序優(yōu)化” 在兩個模式下不同,將這個選項(xiàng)改為 “無全程序優(yōu)化”,之后程序就可以在兩種模式下正常運(yùn)行了。

通過這次調(diào)試得到一個結(jié)論,引用別人lib或者dll的時候,出現(xiàn)連接問題一般都是由于當(dāng)前編譯器版本過低,向上無法兼容;另外一些原因是編譯器的設(shè)置問題,導(dǎo)致無法正確解析庫文件。

vs2008中文 sp1版本下載地址:sp1中文版地址。

vs2008 英文sp1版本下載地址:sp1英文版地址。

2、意外的預(yù)編譯頭錯誤,只需重新運(yùn)行編譯器就可能修復(fù)此問題

昨天還好好的,今天打開vs2008,莫名就出現(xiàn)“意外的預(yù)編譯頭錯誤,只需重新運(yùn)行編譯器就可能修復(fù)此問題”。清理,重新編譯,不行;重啟編譯器,清理,重新編譯,還不行;最后試試,重啟電腦,打開工程,清理,重新編譯,又可以了。

官方給的解決方法:

  • 方法 1:

    • 禁用/analyze編譯器選項(xiàng),則它會被啟用。
  • 方法 2:

    • 開始清理生成。
  • 方法 3:

    • 重新啟動計(jì)算機(jī)。
  • 方法 4:

  • 禁用創(chuàng)建/使用預(yù)編譯頭的編譯器選項(xiàng)。

注意這些方法不能保證正常工作。即使您使用這些方法之一,您可能仍會遇到此問題。

我的解決方案,重啟電腦…

3、 warning LNK4099: 未找到 PDB“vc90.pdb”(使用“…/…/lib\SafeStored.lib”或在“f:\sdologin_code\trunk\bin\Debug\pdb\vc90.pdb”中尋找);正在鏈接對象,如同沒有調(diào)試信息一樣

LNK4099警告通常表示編譯器無法找到與您的項(xiàng)目相關(guān)的調(diào)試信息文件(.pdb文件)。在您的情況下,它正在嘗試查找名為"vc90.pdb"的文件。這個問題通常與編譯器的調(diào)試信息生成設(shè)置有關(guān)。
visual studio 2008 編譯項(xiàng)目出現(xiàn)層次不窮問題枚舉,C++,visual studio,c++
當(dāng)多個Project是分開編譯的,主項(xiàng)目和子項(xiàng)目的pdb文件名相同(默認(rèn)都是vc90.pdb或vc100.pdb)從而造成找不到調(diào)試信息,解決的辦法是修改車險(xiǎn)數(shù)據(jù)庫文件名vc90.pdb為【項(xiàng)目名稱.pdb】,如下所示:

一、在VS2008工程中,經(jīng)常出現(xiàn)warning LNK4099: 未找到 PDB“vc90.pdb等問題,解決辦法如下:

  1. 在項(xiàng)目屬性—C/C++—輸出文件—程序數(shù)據(jù)庫文件名后面填寫$(IntDir)\vc80.pdb。

  2. 在項(xiàng)目屬性—連接器—調(diào)試—生成調(diào)試信息后面改成“否”。

舉例: “warning LNK4099: 未找到 PDB“vc120.pdb”(使用“sqlite3d.lib(sqlite3secure.obj)”或在“D:\test\Debug\vc120.pdb”中尋找);正在鏈接對象,如同沒有調(diào)試信息一樣”。

使用VC時鏈接了第三方靜態(tài)庫, 并且第三方靜態(tài)庫(一般是開源的三方庫)是在一個solution下的多個project, 當(dāng)然,

網(wǎng)上基本都是這么回答的, 其實(shí)本質(zhì)原因是因?yàn)檫@些開源庫一般都會通過各種方式修改solution和project的默認(rèn)路徑

把二進(jìn)制生成到同一個目錄下, 比如lib, 而我們自己平時簡單的靜態(tài)庫工程是不怎么修改默認(rèn)工程配置的.由于每個

開源庫的作者有自己的工程組織方式, 但導(dǎo)致LNK4099的最終原因無非是PDB路徑問題。

解決方案

  • a. 如果確認(rèn)不需要PDB, 即不需要調(diào)試開源庫, 完全可以在設(shè)置里將/Zi或/ZI去掉, 這樣即能消除warning也能提升開源庫編譯速度 。

  • b. 如果需要調(diào)試開源庫, 方法也不復(fù)雜

    • b.1. 將開源庫project里的C/C+±>General->Debug Information Format 設(shè)置為Zi或ZI(兩者區(qū)別請自行g(shù)oogle, Zi就夠用了, 只是高版本的VS默認(rèn)都是ZI)
    • b.2. 然后在C/C+±>Output Files->Pragram Database File Name 設(shè)置為(OutDir)(OutDir)(TargetName).pdb, (有些2B開源庫這里設(shè)置的跟VS默認(rèn)的是一樣的比如(IntDir)vc(IntDir)vc(PlatformToolsetVersion).pdb, 但把IntDir改成了同一個目錄, 每個project生成出來的pdb名字路徑都是一致的, 當(dāng)然就會出問題), 這里需要注意的是, 一定要確保(OutDir)(OutDir)(TargetName)是有意義的, 個別開源庫完全不用vs自帶的宏, 甚至個別開源庫需要configure之后才生產(chǎn)vc project, 甚至是絕對路徑, 但你所要確保的是, 目錄必須跟生成的.lib是同一個, 文件名(不包括擴(kuò)展名)必須是和生成的xxx.lib的xxx是一致的. 之后你要做的就是把每個project的debug&release都按照如上改好再編譯就ok了。

4、VS2008中編譯通過,但調(diào)試時出現(xiàn)“未使用調(diào)試信息生成二進(jìn)制文件”的問題

Debug模式,運(yùn)行時完全正常,但是一調(diào)試就出現(xiàn)對話框,顯示出錯信息:

“無法找到“XXX.exe”的調(diào)試信息,或者調(diào)試信息不匹配。未使用調(diào)試信息生成二進(jìn)制文件?!?/p>

VC項(xiàng)目是空項(xiàng)目。發(fā)現(xiàn)其他的項(xiàng)目都可以調(diào)試,就“空項(xiàng)目”不行。

解決方法:

首先打開菜單 項(xiàng)目->項(xiàng)目屬性頁

  • 1。選擇 配置屬性->鏈接器->調(diào)試->生成調(diào)試信息 改為 是 。
  • 2。選擇 配置屬性->C/C++ ->常規(guī)->調(diào)試信息格式 改為 用于“編輯并繼續(xù)”的程序數(shù)據(jù)庫(/ZI) 。
  • 3。選擇 配置屬性->C/C++ ->優(yōu)化->優(yōu)化 改為 禁用(/Od) 。

5、vs2008為什么有些解決方案x64不能生成,顯示已跳過,也不能編譯?打開屬性,總是報(bào)錯

查下“生成”-> “配置管理器”-> “活動解決方案平臺”是否選擇的“win32”或者x64。

最近準(zhǔn)備編譯64位版本的程序。因?yàn)橹耙呀?jīng)安裝了VS 2008 或者更早的版本,開始以為只是使用VS 2008的安裝文件添加功能即可,后來發(fā)現(xiàn)沒這么簡單。

坑啊,原來vs2008或者更早以前裝x64環(huán)境要自己勾選,made,這個問題導(dǎo)致我花了一整天時間才能發(fā)現(xiàn)。編譯時選擇”重新生成解決方案“,會出現(xiàn),”已跳過生成: 項(xiàng)目”, 不編譯, 也不報(bào)錯。

1>------ 已跳過生成: 項(xiàng)目: INSTALL, 配置: Release x64 ------
1>沒有為此解決方案配置選中要生成的項(xiàng)目
========== 生成: 成功 0 個,失敗 0 個,最新 8 個,跳過 1 個 ==========
visual studio 2008 編譯項(xiàng)目出現(xiàn)層次不窮問題枚舉,C++,visual studio,c++

安裝64位操作系統(tǒng)不是編譯64位程序的必要條件,關(guān)鍵是要裝64位程序的編譯器。雖然標(biāo)題寫著如何在VS2008中編譯,但其實(shí)vs2005也是類似。如果在選擇平臺的下拉列表里找不到x64,可能是沒有安裝x64編譯支持。在VS安裝程序里再裝上就可以了。

原本的是沒有勾選的…。
visual studio 2008 編譯項(xiàng)目出現(xiàn)層次不窮問題枚舉,C++,visual studio,c++

6、fatal error LNK1112: 模塊計(jì)算機(jī)類型“X86”與目標(biāo)計(jì)算機(jī)類型“x64”沖突32位可以編譯 64位1>.\Debug\dxstdafx.obj : fatal error LNK1112: 模塊計(jì)算機(jī)類型“X86”與目標(biāo)計(jì)算機(jī)類型“x64”沖突

  • 這個錯誤消息表明你正在嘗試在一個32位環(huán)境下編譯一個64位目標(biāo),導(dǎo)致了鏈接器錯誤。要解決這個問題,你需要確保編譯器和鏈接器的設(shè)置匹配。以下是一些解決方法:

    • 更改項(xiàng)目配置為64位:

      • 打開你的項(xiàng)目(Visual Studio或其他IDE)。
        轉(zhuǎn)到項(xiàng)目設(shè)置或?qū)傩浴?br> 在配置管理器中,確保你的項(xiàng)目配置為64位(x64)而不是32位(x86)。
        重新編譯你的項(xiàng)目。
    • 檢查所有依賴項(xiàng):

      • 如果你的項(xiàng)目依賴于其他庫或模塊,請確保這些庫也是64位的版本。
        如果你使用了第三方庫,確保你使用了與你的目標(biāo)平臺匹配的庫版本。
    • 更新編譯選項(xiàng):

      • 檢查你的項(xiàng)目的編譯選項(xiàng),確保它們與64位編譯兼容。這包括編譯器標(biāo)志和預(yù)處理器定義。
    • 使用條件編譯:

      • 如果你需要在32位和64位目標(biāo)之間切換,可以使用條件編譯指令來區(qū)分不同的平臺。例如,你可以使用#ifdef和#ifndef來根據(jù)不同的目標(biāo)設(shè)置不同的代碼路徑。
    • 重新安裝工具鏈:

      • 如果你使用的是Visual Studio,有時候重新安裝Visual Studio可以解決一些配置問題。
        檢查操作系統(tǒng):

確保你的操作系統(tǒng)本身支持64位應(yīng)用程序運(yùn)行。如果你的操作系統(tǒng)是64位的,那么你應(yīng)該能夠編譯和運(yùn)行64位應(yīng)用程序。清理解決方案重新生成。文章來源地址http://www.zghlxwxcb.cn/news/detail-696740.html

到了這里,關(guān)于visual studio 2008 編譯項(xiàng)目出現(xiàn)層次不窮問題枚舉的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • detour編譯問題及導(dǎo)入visual studio

    detour編譯問題及導(dǎo)入visual studio

    Detours是經(jīng)過微軟認(rèn)證的一個開源Hook庫,Detours在GitHub上,網(wǎng)址為 https://github.com/Microsoft/Detours 注意版本不一樣的話也是會出問題的,因?yàn)槲抑笆莢s2022的所以之前的detours.lib不能使用,必須用對應(yīng)版本的x64 Native Tools Command Prompt for VS工具進(jìn)行編譯 我這里使用的visual studio2019版本

    2024年02月11日
    瀏覽(33)
  • visual studio智能提示出現(xiàn)慢的問題解決辦法

    visual studio智能提示出現(xiàn)慢的問題解決辦法

    Visual Studio智能提示出現(xiàn)慢的問題解決辦法如下: 清理Visual Studio緩存。通過\\\"文件\\\"→\\\"打開文件或項(xiàng)目\\\"→\\\"取消\\\"→\\\"是,清理所有項(xiàng)目\\\"進(jìn)行清理。 清理Visual Studio實(shí)例。通過\\\"文件\\\"→\\\"關(guān)閉解決方案\\\"進(jìn)行清理。 重置用戶數(shù)據(jù)。打開Visual Studio的開發(fā)人員命令提示符,輸入 devenv.exe

    2024年02月08日
    瀏覽(29)
  • Visual Studio 2022 右鍵單擊項(xiàng)目沒有出現(xiàn)View | View Class Diagram(Visual Studio 無法使用類設(shè)計(jì)器)

    Visual Studio 2022 右鍵單擊項(xiàng)目沒有出現(xiàn)View | View Class Diagram(Visual Studio 無法使用類設(shè)計(jì)器)

    當(dāng)我們在Solution Explorer窗口右鍵單擊項(xiàng)目時,快捷菜單中沒有出現(xiàn)“查看”,或者出現(xiàn)了“查看”,但是“查看”里沒有View Class Diagram。 首先你要確保你安裝了類設(shè)計(jì)器。 其次就與你的項(xiàng)目有關(guān)了,類設(shè)計(jì)器不是所有項(xiàng)目都可以用滴。 類設(shè)計(jì)器在.NET Core項(xiàng)目中是無法使用的

    2024年02月11日
    瀏覽(28)
  • Visual Studio將C#項(xiàng)目編譯成EXE可執(zhí)行程序

    Visual Studio將C#項(xiàng)目編譯成EXE可執(zhí)行程序

    經(jīng)??次恼聲r會收獲不少實(shí)用工具,有的在github上是編譯好的,有的則是未編譯的項(xiàng)目文件。所以經(jīng)常會使用Visual Studio編譯項(xiàng)目文件成exe可執(zhí)行程序,以下為編譯的流程。 第一步,從github上下載項(xiàng)目文件,舉個例子,如工具SharpWifiGrabber SharpWifiGrabber https://github.com/r3nhat/Shar

    2024年02月07日
    瀏覽(27)
  • UE4無法編譯項(xiàng)目。是否要在Visual Studio中打開

    一開始是沒裝Visual Studio。安裝完成后想創(chuàng)建C++項(xiàng)目出現(xiàn)如下報(bào)錯。 無法編譯該項(xiàng)目。要在Visual Studio中打開它嗎? Running E:/Epic Games/UE_4.27/Engine/Binaries/DotNET/UnrealBuildTool.exe Development Win64 -Project=\\\"E:/Epic Games/UE_4.27/UnrealProjects/我的項(xiàng)目4/我的項(xiàng)目4.uproject\\\" -TargetType=Editor -Progress -NoE

    2024年02月03日
    瀏覽(19)
  • Visual Studio 編譯項(xiàng)目出錯:錯誤 MSB4018 “GenerateStaticWebAsssetsPropsFile”任務(wù)意外失敗

    最近因VS2022從V16升級到版本 17.4.0后,項(xiàng)目忽然編譯錯誤,后經(jīng)反復(fù)排錯發(fā)現(xiàn):項(xiàng)目路徑減短項(xiàng)目就不會出錯。出錯內(nèi)容如下: 嚴(yán)重性?? ?代碼?? ?說明?? ?項(xiàng)目?? ?文件?? ?行?? ?禁止顯示狀態(tài) 錯誤?? ?MSB4018?? ?“GenerateStaticWebAsssetsPropsFile”任務(wù)意外失敗 。 System.

    2024年02月15日
    瀏覽(25)
  • Visual Studio編譯器編譯時出現(xiàn)“請選擇有效啟動項(xiàng)”問題的解決辦法

    Visual Studio編譯器編譯時出現(xiàn)“請選擇有效啟動項(xiàng)”問題的解決辦法

    使用visual studio打開的是一個文件夾并不是一個項(xiàng)目,找不到啟動項(xiàng)是正常的。 我們使用visual studio從現(xiàn)有代碼創(chuàng)建項(xiàng)目即可。 上面如果默認(rèn)創(chuàng)建Windows應(yīng)用程序項(xiàng)目運(yùn)行項(xiàng)目時就可能會出現(xiàn) 錯誤 LNK2019 無法解析的外部符號 _WinMain@16,函數(shù) \\\"int __cdecl invoke_main(void)\\\" (?invoke_main@@

    2024年02月11日
    瀏覽(25)
  • Visual Studio 2019程序運(yùn)行出現(xiàn)‘Access violation reading location‘的問題

    在Visual Studio 2019的C++程序調(diào)試運(yùn)行中出現(xiàn)’Access violation reading location’的問題, Unhandled exception at 0xxxxxxxxx (xxxx.dll) in xxxx.exe: 0xxxxxxxxx: Access violation reading location 0xxxxxxxxxx ,進(jìn)行了解決。 在Visual Studio 2019的C++工程,編譯是沒有問題的,但是在程序調(diào)試運(yùn)行時經(jīng)常會出現(xiàn)’A

    2024年02月08日
    瀏覽(21)
  • visual studio 2022 頭文件和庫目錄問題造成的編譯失敗

    visual studio 2022 頭文件和庫目錄問題造成的編譯失敗

    新安裝visual studio 2022后,在一個簡單工程上編譯測試中,遇到標(biāo)準(zhǔn)頭文件(new.h)報(bào)錯,詳情如下: 經(jīng)驗(yàn)證和對比visual studio 2019,發(fā)現(xiàn)visual studio 2022以下sdk路徑有一個明顯差異。詳情如下所示。 visual studio 2019 安裝后的默認(rèn)路徑如下 而 visual studio 2022路徑如下 庫目錄也一樣不

    2023年04月08日
    瀏覽(34)
  • cuda11.7+visual studio 2022 編譯時出現(xiàn)MSB3721問題

    公司項(xiàng)目更新了vs和cuda,我更新完之后發(fā)現(xiàn): C:codeSSRImplDevgEcOG.Common.XrayRegistration_nc“C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.7binnvcc.exe” -gencode=arch=compute_86,code=“sm_86,compute_86” --use-local-env -ccbin “C:Program FilesMicrosoft Visual Studio2022CommunityVCToolsMSVC14.34.31933binHostX

    2024年02月04日
    瀏覽(37)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包