-
Notifications
You must be signed in to change notification settings - Fork 5
Closed
Description
Steps to reproduce
-
Build and install the C library
libversionon Windows:set LIBVERSION_REF=3.0.1 choco install -y git cmake visualstudio2017buildtools pkgconfiglite git clone https://github.com/repology/libversion.git --branch="%LIBVERSION_REF%" cd libversion cmake . -G "Visual Studio 15 2017 Win64" cmake --build . --config Release cmake --install . setx PKG_CONFIG_PATH "C:/Program Files/libversion/lib/pkgconfig" -
Check that it is discoverable by
pkg-config:pkg-config --libs --cflags libversion -
Try to build the Python module
libversion:git clone https://github.com/repology/py-libversion.git cd py-libversion python setup.py build
Actual result
(venv) C:\py-libversion>pkg-config --libs --cflags libversion
-IC:/Program\ Files/libversion/include -LC:/Program\ Files/libversion/lib -lversion
(venv) C:\py-libversion>python setup.py build
running build
running build_py
running build_ext
building 'libversion._libversion' extension
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD "-IC:/Program Files/libversion/include" -ID:\GIT\thirdparty-tr
acking\py-libversion\venv\include -IC:\Python38\include -IC:\Python38\include "-IC:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\include" "-IC:\
Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include
\10.0.17763.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\1
0.0.17763.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\cppwinrt" /Tcsrc/_libversion.c /Fobuild\temp.win-amd64-3.8\Release\src/_libversion.obj
_libversion.c
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO "/LIBPATH:C:/Program Fil
es/libversion/lib" /LIBPATH:C:\py-libversion\venv\libs /LIBPATH:C:\Python38\libs /LIBPATH:C:\Python38 /LIBPATH:C:\py-libversion\venv\PCbuild\am
d64 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\ATLMFC\lib\x64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16
.27023\lib\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17763.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kit
s\10\lib\10.0.17763.0\um\x64" version.lib /EXPORT:PyInit__libversion build\temp.win-amd64-3.8\Release\src/_libversion.obj /OUT:build\lib.win-amd64-3.8\libversion\_libversion.cp38-win_amd64.pyd /IMPLIB:build\te
mp.win-amd64-3.8\Release\src\_libversion.cp38-win_amd64.lib
Создается библиотека build\temp.win-amd64-3.8\Release\src\_libversion.cp38-win_amd64.lib и объект build\temp.win-amd64-3.8\Release\src\_libversion.cp38-win_amd64.exp
_libversion.obj : error LNK2001: unresolved external symbol "__imp_version_compare4"
_libversion.obj : error LNK2001: unresolved external symbol "__imp_version_compare2"
build\lib.win-amd64-3.8\libversion\_libversion.cp38-win_amd64.pyd : fatal error LNK1120: 2 unresolved externals
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\HostX86\\x64\\link.exe' failed with exit status 1120
Expected result
No errors LNK2001:
_libversion.obj : error LNK2001: unresolved external symbol "__imp_version_compare4"
_libversion.obj : error LNK2001: unresolved external symbol "__imp_version_compare2"
Additional information
The C library libversion is installed as the following:
C:\Program Files\libversion\lib\libversion.lib- the import library for load-time dynamic linking of the DLL. However, the DLL itself is not installed to the system.C:\Program Files\libversion\lib\version.lib- the static library.
The pkg-config file C:\Program Files\libversion\lib\pkgconfig\libversion.pc points to the second one (the static library version.lib). But it looks like only the first one (libversion.lib) contains the symbols __imp_version_compare4 and __imp_version_compare2.
Metadata
Metadata
Assignees
Labels
No labels