我刚刚被来自 Visual Studio 2010 (C++) 的一些重要警告打得头破血流。
编译给出了以下输出:
1 Debug\is.obj : 警告 LNK4042:对象指定了不止一次;附加被忽略
1 Debug\make.obj : 警告 LNK4042: 对象指定了不止一次;额外被忽略
1 Debug\view.obj :警告 LNK4042:对象指定了不止一次;extras 被忽略
1 identity.obj:错误 LNK2019:未解析的外部符号void __cdecl test::identity::view(void)
(?view@identity@test@@YAXXZ)在函数void __cdecl test::identity::identity(void)
(?identity@0test@@YAXXZ )中引用
1 identity.obj:错误 LNK2019:未解析的外部符号void __cdecl test::identity::make(void)
(?make @identity@test@@YAXXZ) 在函数void __cdecl test::identity::identity(void)
(?identity@0test@@YAXXZ)中引用
1 range.obj:错误 LNK2019:在函数(?range@0testvoid __cdecl test::range::is(void)
) 中引用的未解析的外部符号 (?is@range@test@@YAXXZ)void __cdecl test::range::range(void)
@@YAXXZ)
链接器错误总是很难调试......但是有未解决的引用,所以我检查了......但源代码格式正确......最后它击中了我:
我的文件夹层次结构如下所示:
src/
identity/
is.cpp
make.cpp
view.cpp
range/
is.cpp
make.cpp
view.cpp
解决方案中的层次结构也是如此(我总是将其设置为模仿“真实”文件夹结构)。
诊断输出:
Debug\is.obj
Debug\make.obj
Debug\view.obj
伴随着一条警告说.obj
已被传递给链接器两次,并且将被忽略。
不再搜索:Visual 已经整齐地展平了我的文件夹层次结构,因此无法整齐地编译源代码。
目前,我只是想重命名文件,这应该涵盖这个问题......
...但是有没有办法让 Visual Studio 不展平文件层次结构?