我有一個C++ Builder XE項目與幾個第三方控件。一些第三方控件沒有特定的XE包,所以我結束了2010年和編譯等...C++ Builder XE OBJ文件
經過許多回轉後,我可以讓我的項目編譯但不鏈接。
我得到的錯誤: [ILINK32錯誤]致命:無法打開文件 'THEMESRV.OBJ'
我使用LMD VCL工具(http://www.lmdinnovative.com/products/vcl /)我認爲這是從何而來。請參閱CBuilder 6項目和較舊版本的LMD工具中存在的Themesrv.obj文件。我的大型項目是將CBuilder6轉換爲XE,並下載了最新的2010版LMD控件; Builder6控件不能在XE下編譯。
現在,如果我創建一個全新的XE項目幷包含來自LMD組件的一些可疑控件,我會得到乾淨的編譯和鏈接。
我甚至做了一些愚蠢的事情,例如將themesrv.obj文件複製到我的項目的構建空間中,以獲取參考問題。
有關跟蹤此問題的任何建議嗎?我沒有在項目經理中明確包含任何LIB或OBJ文件,並且我已經通過項目XML文件查找虛假參考文件...
想法/建議?
好吧,所討論的obj文件似乎並沒有列出IDE組件列表中列出的任何控件。我從LMD工具的Cbuilder6版本轉到了CBuilder 2010版本。其中一個顯而易見的變化是消除了主題,因爲他們現在可以在Borland產品本身中利用它(我猜)。我的項目在IDE中加載的所有組件都沒有問題(它以前沒有過),它編譯乾淨就不會鏈接。就好像IDE在某種程度上認爲我需要這個OBJ文件,並且我得到的是它沒有在鏈接器命令行中列出,如項目屬性中所示。 – Eric 2010-11-15 22:29:03
@Eric,.obj文件對應一個源文件。軟件包/組件的工作方式是將所有單個對象綁定在一起。您正在尋找包含.obj文件數據的正確.lib/.bpi文件。 (鏈接器將停止詢問何時發現.lib/.bpi)您必須確保該文件是1)在Project-> Options-> Packages-> Build with runtime packages列表框中(假設複選框被選中) 2)可以在項目 - >選項 - >目錄和條件 - >庫路徑中列出的其中一個路徑上找到.lib文件,或者3).lib文件添加到項目中。 – 2010-11-16 00:18:42
很明顯,我知道一個obj文件對應一個源文件。有問題的源文件不再是第三方組件的新版本,但CBuilder不斷抱怨說它由於某種原因缺少。這是一個孤立的OBJ文件,我不需要,但不知道如何說服C++ Builder!你會注意到我說這個問題不會在新項目中退出。 OBJ文件也不是所討論的XML項目的一部分。 – Eric 2010-11-19 00:23:58