2 filenames conflict visual-c++
我正在使用gcc 4和cmake开发GNU/Linux应用程序来管理编译过程.我发现当有两个具有相同名称但在其他目录和命名空间中的文件时,没有问题,如下所示:
.
|-- gfx
| |-- Object.cpp
| `-- Object.h
`-- logic
|-- Object.cpp
`-- Object.h
Run Code Online (Sandbox Code Playgroud)
First Object类位于Gfx名称空间中,第二个位于Logic名称空间中.
然后我尝试使用Visual C++ 2008 Express Edition编译该项目.Linker抛出了几个关于Gfx :: Object类不存在的实现的错误.经过几次检查,我发现:
我还发现Visual C++不允许创建两个具有相同名称的类.
这有解决方案吗?我真的不想重构很大一部分代码.
两个Object.cpp文件都将编译为Object.obj.进入同一目录.换句话说,编译的最后一个将覆盖第一个的Object.obj.是的,链接器不会被激动,你会得到多个定义的符号,因为它链接相同的Object.obj文件两次.
修复很简单,右键单击Object.cpp文件之一,属性,C/C++,输出文件.将对象文件名从$(IntDir)\更改为,例如,$(IntDir)\ $(InputName)2.obj
| 归档时间: |
|
| 查看次数: |
895 次 |
| 最近记录: |