Mam okrągłą zależność między dwiema funkcjami. Chciałbym, aby każda z tych funkcji rezydowała w swojej własnej bibliotece dll. Czy można to zbudować za pomocą wizualnego studia?Okrągłe zależności między bibliotekami dll i wizualnym studio
foo(int i)
{
if (i > 0)
bar(i -i);
}
-> należy skompilować do foo.dll
bar(int i)
{
if (i > 0)
foo(i - i);
}
-> należy skompilować do bar.dll
I zostały utworzone dwa projekty w visual studio, jeden dla foo i jeden dla barów . Grając z "Referencjami" i kompilując kilka razy, udało mi się zdobyć bibliotekę DLL, którą chcę. Chciałbym jednak wiedzieć, czy visual studio oferuje sposób na zrobienie tego w czysty sposób.
W przypadku zmiany foo, pasek nie musi być rekompilowany, ponieważ zależę tylko od podpisu paska, a nie od implementacji paska. Jeśli obie biblioteki dll mają bibliotekę obecną, mogę ponownie skompilować nową funkcjonalność do jednego z dwóch i cały system nadal działa.
Powodem, dla którego próbuję tego, jest to, że mam starszą wersję systemu z kołowymi zależnościami, które są obecnie statycznie połączone. Chcemy przejść do bibliotek dll z różnych powodów. Nie chcemy czekać, aż oczyścimy wszystkie zależności cykliczne. Myślałem o rozwiązaniach i wypróbowałem pewne rzeczy z gcc na Linuksie i tam można robić to, co sugeruję. Więc możesz mieć dwie biblioteki współdzielone, które zależą od siebie i mogą być budowane niezależnie od siebie.
Wiem, że zależności okrężne nie są dobre, ale to nie jest dyskusja, którą chcę mieć.
Bardzo interesujące pytanie. Wiem, że coś takiego może się podobać, ale tak naprawdę nie wiem jak - myślę, że wiąże się to ze specjalnymi paramami wiersza poleceń do linkera JEDNEJ z bibliotek dll, a inna biblioteka dll powinna mieć prostą zależność. – Paulius
@PM: Jeśli tak jest, to jest to coś, co będzie stałym problemem zapomnianym, źle skonfigurowanym, itd. – annakata