<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
No všechny soubory, tedy zdroják pokusného programu, H, DLL a LIB
jsou v obou případech stejné, ale s cmake (který používá VS) to
funguje, kdežto z přímo ve VS ne.<br>
<br>
A ten cmake se pouští z bat:<br>
<b><font color="#800000">mkdir build<br>
cd build<br>
cmake -DCMAKE_GENERATOR_PLATFORM=x64 .. <br>
msbuild /P:Configuration=Release ALL_BUILD.vcxproj</font></b><br>
(a pak copy exe a DLL na místo kde se to spouští)<br>
<br>
Jo a pak jsem v tom VS zapnul x64, prvně jsem si nevšim že je zaplý
x86.<br>
<br>
Výsledkem jsou jiný errory:<br>
Severity Code Description Project File Line
Suppression State<br>
Error (active) E0260 explicit type is missing ('int' assumed)<br>
A ty errory se odkazujou na všechny začátky deklarací funkcí v
pxcapi.h<br>
<br>
Všechny jsou tohoto typu:<br>
<font face="Courier New, Courier, monospace">PXCAPI int
pxcRefreshDevices();</font><br>
a liší se až názvy a parametry<br>
přičemž nahoře je:<br>
<font face="Courier New, Courier, monospace">#ifndef WIN32<br>
#define PXCAPI extern "C" __attribute__
((visibility("default")))<br>
#else<br>
#define PXCAPI extern "C" __declspec(dllexport)<br>
#endif</font><br>
<br>
PH<br>
<br>
<div class="moz-cite-prefix">Dne 15.02.2022 v 16:03 Jindroush
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:418c7346-3e7d-b1e4-65aa-a6d6c2ec062d@seznam.cz">No a ten
unresolved symbol v pxcore.lib urcite je, tj. presne ve stejnem
tvaru, na ktery si linker stezuje?
<br>
J.
<br>
<br>
On 15.02.2022 15:53, Pavel Hudeček wrote:
<br>
<blockquote type="cite">Dobrý den všem,
<br>
mám konzolový program v C, který využívá DLL a LIB. Pro začátek
by mi stačilo, kdyby to fungovalo v triviální verzi, kdy je DLL
a LIB u zdrojáků.
<br>
<br>
Pokud použiju cmake, funguje mi tento CMakeList.txt:
<br>
<br>
<font color="#800000"><b>cmake_minimum_required(VERSION 3.10)
</b><b><br>
</b><b>project(widepix2fd)
</b><b><br>
</b><b>add_library(pxcore SHARED IMPORTED)
</b><b><br>
</b><b>set_property(TARGET pxcore PROPERTY IMPORTED_LOCATION
"${CMAKE_SOURCE_DIR}/pxcore.dll")
</b><b><br>
</b><b>set_property(TARGET pxcore PROPERTY IMPORTED_IMPLIB
"${CMAKE_SOURCE_DIR}/pxcore.lib")
</b><b><br>
</b><b>add_library(wpxTest.dll SHARED widepix2fd.cpp)
</b><b><br>
</b><b>target_link_libraries(widepix2fd pxcore)
</b></font><b><br>
</b><b>
</b><br>
Jenže já bych to potřeboval rozchodit ve VS2017. Ale nedaří se
mi v nastavení projektu zařídit, aby to fungovalo.
<br>
V nastavení projektu All configurations / All Platforms jsem
nastavil:
<br>
Linker/Input/Additional Dependencies jsem přidal pxcore.lib
<br>
Build Events/Post-Build Event/Command line jsem dal xcopy /y /d
"*.dll" "$(OutDir)"
<br>
<br>
Dostal jsem se do stavu, kdy to dělá errory LNK2001 unresolved
external symbol a za tím název funkce doplněný o podtřžítko.
<br>
</blockquote>
</blockquote>
</body>
</html>