2012-08-28 9 views
6

W Embarcadero RAD Studio 2010 istnieje ustawienie w Opcjach projektu dla bibliotek statycznych o nazwie "Dynamiczny RTL". (Jest w sekcji TLib.)Jaki jest wpływ zmiany ustawienia "Dynamiczne RTL" dla biblioteki statycznej?

Miałem wrażenie, że decyzja o tym, czy połączyć RTL dynamicznie czy statycznie, jest podejmowana w czasie łącza, a nie podczas kompilacji. Ale statyczne biblioteki tylko kompilują; nie ma etapu łączenia. Jak więc zmiana tej opcji wpływa na moją statyczną bibliotekę?

Mam niektóre projekty .exe i .dll, które używają tych statycznych bibliotek i ustawiam opcję "Dynamiczny RTL" w tych projektach. Ma to sens, ponieważ w rzeczywistości mają coś do połączenia, ale nie rozumiem, jaki wpływ ma to ustawienie na statyczne biblioteki.

Czy może spowodować problemy, jeśli statyczne biblioteki mają wartość Dynamiczny RTL = true, a biblioteki DLL i EXE korzystające z tych bibliotek mają wartość Dynamic RTL = false?

Odpowiedz

6

Nie używam Embarcadero, ale starszą wersję C++ Builder. Myślę, że działają w ten sam sposób. Gdy używasz Dynamic RTL, twój kod wywoła funkcje RTL z bibliotek DLL środowiska wykonawczego, które powinny zostać dostarczone z twoim programem. Kiedy nie używasz dynamicznego RTL, funkcje są kopiowane z bibliotek do plików exe lub lib. Korzystam z dynamicznego RTL, zmniejszając rozmiar plików EXE. Logika jest taka sama dla exe lub libs. Oznacza to, że jeśli używasz dynamicznego RTL w dowolnym module, jesteś exe lub lib, będziesz musiał wysłać również odpowiednie biblioteki DLL środowiska wykonawczego.

Powiązane problemy