Mam projekt, który łączy się zarówno z OpenCV i cvBlob, ale cvBlob również linki do OpenCV. Zarówno OpenCV, jak i cvBlob są zbudowane jako biblioteki statyczne.Czy dwukrotne połączenie biblioteki statycznej powoduje duplikację?
Czy mój plik wykonywalny ma 2 kopie wszystkich funkcji OpenCV, które są używane zarówno przez mój kod i przez cvBlob, czy też linker wykrywa to i usuwa nadmiarowość?
cvBlob i mój link do tego samego pliku biblioteki OpenCV.
Jest to bardzo często spotykana sytuacja - * każdy * łączy się z CRT na przykład. Łącznik obsługuje go bez potu. –
Co jednak dzieje się w przypadku, gdy istnieją dwie różne wersje tej samej biblioteki? Czy to nie jest deterministyczne, co faktycznie zostanie wykorzystane? –
Jeśli masz * inne pliki * .lib, które implementują te same funkcje, otrzymasz "duplikat symbolu" błędy/ostrzeżenia w czasie łącza. – cbranch