Statische LIB auch in DLL oder nur EXE linken?



  • Hallo,

    ich habe die folgenden Dinge:
    1. eine statisch gelinkte LIB (3rd party) mit zugehörogem Header - meinetwegen A.lib und A.h
    2. eine selbsterstellte DLL, die Code aus 1. verwendet - z.B. B.dll
    3. Eine selbsterstellte EXE, die Code aus 1. und 2. verwendet - z.B. C.exe

    Frage(n):
    Ich weiß nicht so recht, wie ich Frage formulieren soll, 😞 aber ich versuchs mal:
    Muss A.lib nur in der C.exe als Abhängigkeit angegeben werden oder auch in der B.dll? Was ich meine ist: Braucht B.dll zwingend auch die A.lib? Oder genügt ihr A.h und C.exe hat dann A.lib, sowie A.h?

    Viele Grüße
    gelignite



  • Wenn B.dll Code aus A.h nimmt (sofern es keine Header-Only-Funktionen sind), dannbrauhct B.dll beim linken natuerlich A.lib als Abhaengigkeit. C.exe muss von natuerlich auch A.lib drin haben, da B.dll den Code fuer A.lib zwar enthaelt, aber der Linker nicht dort drin suchen wird. Um die DLL in C.exe zu benutzen brauchst du entweder eine Importlib B.lib oder mussts von Hand dynamisch laden.



  • Supi, danke. 👍


Anmelden zum Antworten