Re: Problémy s DLL a LIB ve VS2017
Pavel Hudeček
edizon na seznam.cz
Úterý Únor 15 21:59:13 CET 2022
Ano, jako ve všech ostatních případech. Ale tady to nějak nestačí.
PH
Dne 15.02.2022 v 21:08 Miroslav Šinko napsal(a):
> V nastaveniach projektu ste pridali do linker settings pxcapi.lib?
>
> miro
>
> Používateľ Pavel Hudeček <edizon na seznam.cz> utorok 15. februára 2022
> napísal:
>
> Díky, to je zajímavá stopa. Když jsem místo toho použil:
> #define PXCAPI extern "C"
> nebo
> #define PXCAPI extern "C" __declspec(dllimport)
>
> Proběhne debug build bez problémů.
>
> Zajímavé je, že ale v obou případech release skončí errorama typu:
> Severity Code Description Project File Line
> Suppression State
> Error LNK2001 unresolved external symbol
> __imp_pxcInitialize prjTest4 C:\Users\hudecekp\Documents\Visual
> Studio 2017\Projects\sdk-test\prjTest4\prjTest4.obj 1
>
> (Původní verze v qt funguje vždy a oběma způsoby)
>
> Takže v nastavení projektu VS se musí nějak říct, že má umět
> __attribute__
>
> PH
>
> Dne 15.02.2022 v 17:45 Miroslav Šinko napsal(a):
>> MSVC2017, ani cmake nepouzivam, no __attribute__ mi pripada, ze je zo
>> sveta GCC a nie MSVC.
>>
>> Ten prvy error hovori, ze vam chyba typ (navratovy) pre funkciu:
>> PXCAPI int pxcInitialize(int argc = 0, char const* argv[] = NULL);
>> Ono ho tam mate, ale po rozvoji PXCAPI:
>> extern "C" __attribute__ ((visibility("default"))) int
>> pxcInitialize(int argc = 0, char const* argv[] = NULL);
>> kompilatoru podla mna nejde do hlavy __attribute__
>>
>> miro
>>
>> ut 15. 2. 2022 o 17:35 Pavel Hudeček<edizon na seznam.cz> <mailto:edizon na seznam.cz> napísal(a):
>>
>>> No on ten #if pro win32 bude artefakt z dávné doby, teď se to buildí jen v 64b a mnou používané DLL je 64b, takže momentálně nemá smysl se zabývat tím co vzniklo, když jsem omylem buildil 32b.
>>>
>>> A důležité je, že stejné fajly C, H, DLL a LIB fungují při použití Cmake a též fungují při použití v QT, jen s přidáním LIB do projektu a tam fungují při všech metodách překladu, tedy cmake/VS, qmake/VS i mingw. Tzn. všechny 4 fajly jsou v pořádku, jen není správně nastaven projekt ve VS.
>>>
>>> Teď teda co je za problém ve VS při při 64b, s funkcemi deklarovanými:
>>> #define PXCAPI extern "C" __attribute__ ((visibility("default")))
>>> PXCAPI int pxcInitialize(int argc = 0, char const* argv[] = NULL);
>>>
>>> error:
>>> Severity Code Description Project File Line Suppression State
>>> Error (active) E0260 explicit type is missing ('int' assumed) prjTest4 C:\Users\hudecekp\Documents\Visual Studio 2017\Projects\sdk-test\prjTest4\pxcapi.h 140
>>> ukazující na začátek řádku, tedy před PXCAPI
>>> a další error:
>>> Severity Code Description Project File Line Suppression State
>>> Error (active) E0065 expected a ';' prjTest4 C:\Users\hudecekp\Documents\Visual Studio 2017\Projects\sdk-test\prjTest4\pxcapi.h 140
>>> ukazující před int.
>
>
> _______________________________________________
> HW-list mailing list - sponsored bywww.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20220215/5ba062ff/attachment.htm>
Další informace o konferenci Hw-list