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