StackOverflow!用C++編譯問題 - C++/CLI - C#項目(Borland和VS特定組件)
今天的問題有點奇怪,但請耐心等待。任何意見/建議非常感謝!
我已經在一個項目上繼承了一箇舊的代碼庫,其中一些組件的歷史可追溯到2002年。這個項目沒有任何文檔,並且已經建立的構建的原始機器不再存在(硬驅動器失敗並且沒有可用的備份...)。該系統與機器人手臂交互並對其進行控制。我有一個完整的安裝和可執行文件安裝在測試機器上,使用適當的硬件。源代碼位於Subversion存儲庫中,但日誌消息很少,並且沒有提供實用建議。最近一月就已經開始工作了,但是開發者離開之前就離開了。它被部分重新編寫了一個新的基於C#的GUI。該項目由C++,C++/CLI和C#組成。它使用Boost和VTK。 簡而言之,我的問題是:軟件的控制部分存在客戶端關鍵錯誤,我無法構建項目。沒有可用的調試符號,並附上正在運行的EXE不起作用(可能的原因爲什麼在下面)。在我嘗試過的任何配置下,無論是C# 之前的版本還是最新的源代碼版本。
使問題變得更加複雜化,雖然我不確定這個問題,但是這個項目曾經是通過Borland C++ Builder V6構建的,並且已經被遷移到Visual Studio。它仍然包含Borland特定的組件,儘管其中大部分似乎都是有條件的。
我的經理髮誓,它會不是建立在VS下,並且必須在Borland中完全編譯。問題是我不能在沒有幾十個錯誤的情況下建立它。確實有Borland特定的組件(BPL文件),但我不知道它們是什麼,或者它們如何與項目結構相關。
我想知道是否需要在Borland和VS中構建,或者類似的東西。所以,我的問題是:是否有任何方法可以嘗試和推斷如何構建這個東西,還是隻是嘗試每個選項的問題,直到我擊中了正確的一個?
編輯:錯誤日誌如下。請注意:我很熟悉VS,但直到幾天前我才使用過Borland。 Noob警報!
Borland C++ Builder 6請求缺少幾個.bpi文件(對應的.bpl文件可從安裝在測試機器上)。
執行預生成批處理文件似乎執行沒有錯誤。
我已經下載了C++ Builder 2010的試用版,並且已經導入了該項目。對似乎是 正確的targer執行'Build All'我得到以下錯誤(在缺少文件的某些提示後......我試着設置鏈接器和編譯 選項來避免這些,但說實話,我不知道這是否是外部依賴或沒有安裝 Borland的組件)
檢查項目依賴... Building LoggingDebug.cbproj(調試配置)
[BCC32錯誤] is_array。HPP(40):模板參數E2430數量不 'is_array' 重複聲明匹配
[BCC32錯誤] is_array.hpp(40):E2428模板必須是類或函數
[BCC32錯誤] is_array .HPP(41):E2428模板必須是類或函數
[BCC32錯誤]:模板參數E2430數量不 'is_array'
[BCC32錯誤] is_array.hpp(41)重複聲明匹配is_array.hpp(42):E2430重新聲明'is_array'時模板參數的數量不匹配
[BCC32錯誤] is_array.hpp(42):E2428模板必須是類或函數
[BCC32錯誤] is_array.hpp(43):模板參數E2430數量不 'is_array' 重複聲明匹配
[BCC32錯誤] is_array.hpp(43):E2428模板必須是類或函數
[BCC32錯誤] ct_if.hpp(31):E2238多個聲明關於 'ct_and ::類型'
[BCC32錯誤] ct_if.hpp(30):E2344早先聲明'ct_and :: type'
[BCC32錯誤] function_base.hpp(157):爲 'function_return_type ::類型'
[BCC32錯誤] function_base.hpp(152)E2238多個聲明: 'function_return_type ::類型' 的E2344原先的聲明
[BCC32錯誤] alignment_of.hpp(37):類型空隙E2468值是不允許的
[BCC32錯誤] alignment_of.hpp(56):E2450未定義結構 'alignment_of_hack'
[BCC32錯誤] alignment_of.hpp(56):E2109不是允許的類型
[BCC32錯誤] alignment_of.hpp(37):類型空隙E2468值是不允許的
[BCC32錯誤] alignment_of.hpp(56):E2450未定義結構 'alignment_of_hack'
[BCC32錯誤] alignment_of.hpp(56):E2109不允許使用的類型
[BCC32錯誤] alignment_of.hpp(37):類型空隙E2468值是不允許的
[BCC32錯誤] alignment_of.hpp (56):E2450未定義的結構'alignment_of_hack '
[BCC32錯誤] alignment_of.hpp(56):E2109不允許使用的類型
[BCC32錯誤] alignment_of.hpp(37):類型空隙E2468值是不允許的
[BCC32錯誤] alignment_of.hpp(56):E2450未定義結構 'alignment_of_hack'
[BCC32錯誤] alignment_of.hpp(56):E2109不允許使用的類型
[BCC32錯誤]如果。HPP(131):E2270>預期
[BCC32錯誤] if.hpp(131):E2321聲明沒有指定的標籤或標識符
[BCC32錯誤] type_with_alignment.hpp(271):E2238多聲明關於 'type_with_alignment < 2> ::類型'
[BCC32錯誤] type_with_alignment.hpp(268):將E2344早些時候聲明 'type_with_alignment < 2> ::類型'
[BCC32錯誤] not.hpp (40):E2015'aux'和'mpl _ :: aux'之間的歧義
[BCC32錯誤] not.hpp(47):E2270>預期
[BCC32錯誤] not.hpp(47):E2321聲明沒有指定的標籤或標識符
[BCC32錯誤]空隙.HPP(71):E2270>預期
[BCC32錯誤] void.hpp(71):E2321聲明沒有指定的標籤或標識符
[BCC32錯誤] void.hpp(72):E2270 >預計
[BCC32錯誤] void.hpp(72): E2321聲明沒有指定的標籤或標識符
[BCC32錯誤] or.hpp(50):E2015 '輔助' 和 'MPL _ ::輔助'
[BCC32錯誤] or.hpp之間歧義( 62):E2270>預期
[BCC32錯誤] or.hpp(62):E2321聲明沒有指定的標籤或標識符
[BCC32錯誤] eval_if.hpp(67):E2270>預期
[BCC32錯誤] eval_if.hpp(67):E2321聲明未指定標籤或標識IER
[BCC32錯誤] identity.hpp(40):E2270>預期
[BCC32錯誤] identity.hpp(40):E2321聲明沒有指定的標籤或標識符
[BCC32錯誤] identity.hpp(41):E2270>預期
[BCC32錯誤] identity.hpp(41):E2321聲明沒有指定的標籤或標識符
[BCC32錯誤] yes_no.hpp(35 ):E2238'yes_no_tag < 1> :: type'
[BCC32錯誤] yes_no.hpp(30):的E2344早些時候聲明 'yes_no_tag < 1> ::類型'
[BCC32錯誤] assert.hpp(79):E2270>預期
[BCC32錯誤] assert.hpp(79):E2321聲明沒有指定的標籤或標識符
[BCC32錯誤] arg.hpp(21):E2270>預期
[BCC32錯誤] ARG。HPP(28):E2321聲明沒有指定的標籤或標識符
[BCC32錯誤] arg.hpp(28):E2228太多錯誤或警告消息
失敗
經過時間:00 :00:36.2
精確誤差的變化取決於哪一個版本我從倉庫拉源的,但考慮到這件事情顯然構建完美的大量錯誤的「在適當的條件下,」肯定意味着問題與外部依賴關係,親JECT設置等
如果您給我們編譯器錯誤日誌,我們可能能夠幫助您找出錯誤。 – 2010-08-09 10:48:58
@Merlyn:謝謝,這是一個很好的建議。我會把一些更多的信息:-) – HypersonicNinja 2010-08-09 11:01:35