Autor Wątek: Visual C++ i Boost  (Przeczytany 1491 razy)

Offline Anusia2007

  • Użytkownik

# Lipiec 23, 2007, 01:50:06
Uzywam visual studio 2005 ee oraz dwoch bibliotek boost. Niestety podczas kompilacji vs wywala mi nastepujacy blad:
c:\boost\boost\config\auto_link.hpp(287) : fatal error C1189: #error :  "Mixing a dll boost library with a static runtime is a really bad idea..."

Moze mi ktos wytlumaczyc prostymi slowami jak rozwiazac ten problem?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

bies

  • Gość
# Lipiec 23, 2007, 05:22:28
Nie mieszać bibliotek dll z boosta ze statycznym runtime (z VC). Pewnie ustawia się to gdzieś w opcjach projektu (nie mam akurat tego IDE -- może ktoś z użytkowników poda Ci dokładne miejsce). Dla cl.exe jest to przełącznik /MD zamiast /MT. Do poczytania: http://msdn2.microsoft.com/en-us/library/abx4dbyh(VS.80).aspx

bies

  • Gość
# Lipiec 23, 2007, 11:50:05
.
« Ostatnia zmiana: Kwiecień 21, 2008, 22:05:23 wysłana przez Szalonuki »

Offline Anusia2007

  • Użytkownik

# Lipiec 23, 2007, 15:50:42
Dziala, tylko teraz wymaga przy uruchomieniu DLL'ek (np. boost_thread-vc80-mt-gd-1_34.dll). A co jesli chce miec wszystko zlinkowane w moim .exe zeby nie miec zadnych dodatkowych plikow?

bies

  • Gość
# Lipiec 23, 2007, 20:52:30
Dziala, tylko teraz wymaga przy uruchomieniu DLL'ek (np. boost_thread-vc80-mt-gd-1_34.dll). A co jesli chce miec wszystko zlinkowane w moim .exe zeby nie miec zadnych dodatkowych plikow?
Boost.Thread nie da się zlinkować statycznie. Inne biblioteki (Regex, Filesystem) tak, ale akurat Thread ma problemy z TLS. A przynajmniej tak było jakiś czas temu (z tym że Boost.Thread nie jest już aktywnie rozwijana -- więc nie sądzę aby coś się miało poprawić).

Offline Anusia2007

  • Użytkownik

# Lipiec 23, 2007, 21:39:17
Dziala, tylko teraz wymaga przy uruchomieniu DLL'ek (np. boost_thread-vc80-mt-gd-1_34.dll). A co jesli chce miec wszystko zlinkowane w moim .exe zeby nie miec zadnych dodatkowych plikow?
Boost.Thread nie da się zlinkować statycznie. Inne biblioteki (Regex, Filesystem) tak, ale akurat Thread ma problemy z TLS. A przynajmniej tak było jakiś czas temu (z tym że Boost.Thread nie jest już aktywnie rozwijana -- więc nie sądzę aby coś się miało poprawić).
Dzieki za odpowiedz.
A moze jest jakis sposob np. by wrzucic dll'ki do zasobow w exe? Albo w jakis inny sposob je ukryc? Zalezy mi na tym aby nie paletaly sie tam gdzie exe.

Offline Moriturius

  • Użytkownik

# Lipiec 24, 2007, 00:51:22
A moze jest jakis sposob np. by wrzucic dll'ki do zasobow w exe? Albo w jakis inny sposob je ukryc? Zalezy mi na tym aby nie paletaly sie tam gdzie exe.

Najprostszym rozwiązaniem tego problemu jest zrobienie instalki która wrzuci DLLki do C:\Windows\System32 [albo jakiegos innego katalogu ze zmiennej srodowiskowej PATH] i już :P
Nie ma co sie specjalnie zamartwiać i tworzyć jakieś przekombinowane cuda ^^