Autor Téma: Dynamic library import file - include path problém  (Přečteno 7910 krát)

Offline hlucheucho

  • Plnoletý
  • ***
  • Příspěvků: 196
  • Karma: 2
Dynamic library import file - include path problém
« kdy: 18-08-2014, 15:11:40 »
Ahoj,

ve svém projektu používám "Dynamic library import file" - soubor .lib. Když nastavím "library path" na adresář tohoto souboru, obdržím sérii chybových hlášení Unresolved external ...  Pokud tento soubor přidám do projektu (volba Project->Add to Project), vše proběhne bez problémů, vznikne funkční exe. Nastavení include path do adresáře s hlavičkovými soubory jsem nastavil bez obtíží.

Musí se .h, .lib a .dll soubory jmenovat stejně?

C++ Builder XE5, Win 7 32 bit

hu

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 577
  • Karma: 25
Re:Dynamic library import file - include path problém
« Odpověď #1 kdy: 18-08-2014, 20:01:12 »
Na jménu snad ani nezáleží. Jde o to, že .h obsahuje jenom hlavičky funkcí, v lib je pak implementace, takže pokud je nedáš do projektu, tak pak linker neví, co se má volat. Takže musíš liby přidat do projektu, v některých předkladačích funguje něco jako

#pragma comment(lib, "kernel32")

Offline hlucheucho

  • Plnoletý
  • ***
  • Příspěvků: 196
  • Karma: 2
Re:Dynamic library import file - include path problém
« Odpověď #2 kdy: 18-08-2014, 20:14:16 »
vždycky jsem si myslel, že stačí nastavit library path v options projektu. Navíc je to složitější o to, že překladač umí více platforem a pro každou je knihovna jiná - pro 32 bit Win je to .lib, pro 64 bit Win je to .a

hu

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 577
  • Karma: 25
Re:Dynamic library import file - include path problém
« Odpověď #3 kdy: 18-08-2014, 20:53:16 »
vždycky jsem si myslel, že stačí nastavit library path v options projektu. Navíc je to složitější o to, že překladač umí více platforem a pro každou je knihovna jiná - pro 32 bit Win je to .lib, pro 64 bit Win je to .a

No kromě cesty musíš říct, který konkrétní liby tam chceš použít (asi bys tam nechtěl nalinkovat všechny, co to najde). Přes ten #pragma tam snad přípony nepíšeš, takže je to jedno.

Offline hlucheucho

  • Plnoletý
  • ***
  • Příspěvků: 196
  • Karma: 2
Re:Dynamic library import file - include path problém
« Odpověď #4 kdy: 19-08-2014, 10:04:26 »
Jestli tomu dobře rozumím, tak library path jsou nastavené pro případ, že bude nějaká lib vložena pomocí direktivy pragma?

hu

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 577
  • Karma: 25
Re:Dynamic library import file - include path problém
« Odpověď #5 kdy: 19-08-2014, 15:29:16 »
Jestli tomu dobře rozumím, tak library path jsou nastavené pro případ, že bude nějaká lib vložena pomocí direktivy pragma?

hu

já v C/C++ nedělám, ale asi jo. V delphi do uses píšeš, které knihovny používáš a v options kde je má hledat, v C místo uses dáváš referenci na lib knihovny, ale taky je musí někde najít.