Właśnie uderzyło mnie (raczej nie) w głowę jakieś nietrywialne ostrzeżenie ze strony Visual Studio 2010 (C ++).
Kompilacja dała następujący wynik:
1 Debug \ is.obj: ostrzeżenie LNK4042: obiekt określony więcej niż raz; dodatki ignorowane
1 Debugowanie \ make.obj: ostrzeżenie LNK4042: obiekt określony więcej niż raz; dodatki ignorowane
1 Debugowanie \ view.obj: ostrzeżenie LNK4042: obiekt określony więcej niż raz; dodatki zignorowane
1 identity.obj: błąd LNK2019: nierozwiązany symbol zewnętrznyvoid __cdecl test::identity::view(void)
(? view @ identity @ test @@ YAXXZ), do którego odwołuje się funkcjavoid __cdecl test::identity::identity(void)
(? identity @ 0test @@ YAXXZ)
1 identity.obj: błąd LNK2019: nierozwiązany symbol zewnętrznyvoid __cdecl test::identity::make(void)
(? make @ identity @ test @@ YAXXZ), do którego odwołuje się funkcjavoid __cdecl test::identity::identity(void)
(? identity @ 0test @@ YAXXZ)
1 zakres.obj: błąd LNK2019: nierozwiązany symbol zewnętrznyvoid __cdecl test::range::is(void)
(? is @ zakres @ test @@ YAXXZ), do którego odwołuje się funkcjavoid __cdecl test::range::range(void)
(? zakres @ 0test @@ YAXXZ)
Błędy konsolidatora są zawsze trudne do debugowania ... ale były nierozwiązane odniesienia, więc sprawdziłem ... ale źródło jest dobrze sformułowane ... iw końcu dotarło do mnie:
Moja hierarchia folderów wygląda następująco:
src/
identity/
is.cpp
make.cpp
view.cpp
range/
is.cpp
make.cpp
view.cpp
tak samo jak hierarchia w rozwiązaniu (zawsze konfiguruję ją tak, aby naśladowała „prawdziwą” strukturę folderów).
Oraz wyjścia diagnostyczne:
Debug\is.obj
Debug\make.obj
Debug\view.obj
Wraz z ostrzeżeniem, które mówi, że .obj
został przekazany dwukrotnie do konsolidatora i ten zostanie zignorowany.
Nie szukaj więcej: Visual porządnie spłaszczył moją hierarchię folderów i dlatego nie jest w stanie starannie skompilować źródła.
W tej chwili myślę po prostu o zmianie nazw plików, które powinno rozwiązać problem ...
... ale czy istnieje sposób, aby program Visual Studio NIE spłaszczył hierarchii plików?