Op 25-04-2024 om 16:58 schreef Stefan Behnel:> If it's a somewhat straightforward change that doesn't need tons of
back-and-forth testing and debugging, and you have a github account, you
could also use their CI service (Github Actions), either on your own
account or in lxml's account via a pull request.

That would be an interesting approach (I do have a github account). I have looked at the actions to see if they would help me figure out how to build lxml, but what it does is beyond me, I'm afraid. If I could fork lxml, experiment, and have an action build it for me, I'd be very happy. 🙂 I'm not sure how to go about that, though.

It might help to see the command line.

For completeness, I've included everything I did below (it isn't actually that much). It wraps, which doesn't help readability, but I don't know how to stop Thunderbird doing that. (Is attaching a text file allowed on the list? Perhaps that would work better.)

As you can see below, compiling seems to work fine, but linking fails.

At least the first two symbols _xmlStrchr and _xmlIOParseDTD, can be found within libxml2_a.lib, but without the underscore. Does this mean the libraries are perhaps compiled with differerent flags?

Thanks for your help, kind regards,
Gertjan.


==========

C:\Temp>git clone https://github.com/lxml/lxml.git
[...]
C:\Temp>cd lxml
C:\Temp\lxml>py -m venv .venv
C:\Temp\lxml>.venv\Scripts\activate
(.venv) C:\Temp\lxml>call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat"
[...]
(.venv) C:\Temp\lxml>pip install cython
Using cached Cython-3.0.10-cp312-cp312-win_amd64.whl (2.8 MB)
(.venv) C:\Temp\lxml>pip install setuptools
Using cached setuptools-69.5.1-py3-none-any.whl (894 kB)

(.venv) C:\Temp\lxml>python setup.py build_ext -i --with-cython --static-deps
Building lxml version 5.2.1.
C:\Temp\lxml\setup.py:67: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
  import pkg_resources
Latest version of libxml2 is 2.11.7
Latest version of libxslt is 1.1.39
Latest version of zlib is 1.2.12
Latest version of iconv is 1.15
Retrieving "https://github.com/lxml/libxml2-win-binaries/releases/download/2024.03.26/libxml2-2.11.7.win64.zip"; to "libs\libxml2-2.11.7.win64.zip"
Unpacking libxml2-2.11.7.win64.zip into libs
Retrieving "https://github.com/lxml/libxml2-win-binaries/releases/download/2024.03.26/libxslt-1.1.39.win64.zip"; to "libs\libxslt-1.1.39.win64.zip"
Unpacking libxslt-1.1.39.win64.zip into libs
Retrieving "https://github.com/lxml/libxml2-win-binaries/releases/download/2024.03.26/zlib-1.2.12.win64.zip"; to "libs\zlib-1.2.12.win64.zip"
Unpacking zlib-1.2.12.win64.zip into libs
Retrieving "https://github.com/lxml/libxml2-win-binaries/releases/download/2024.03.26/iconv-1.15.win64.zip"; to "libs\iconv-1.15.win64.zip"
Unpacking iconv-1.15.win64.zip into libs
Building with Cython 3.0.10.
Building against pre-built libxml2 andl libxslt libraries
Building against libxml2/libxslt in one of the following directories:
  libs\libxml2-2.11.7.win64\lib
  libs\libxslt-1.1.39.win64\lib
  libs\zlib-1.2.12.win64\lib
  libs\iconv-1.15.win64\lib
Compiling src\lxml\etree.pyx because it changed.
Compiling src\lxml\objectify.pyx because it changed.
Compiling src\lxml\builder.py because it changed.
Compiling src\lxml\_elementpath.py because it changed.
Compiling src\lxml\html\diff.py because it changed.
Compiling src\lxml\sax.py because it changed.
[1/6] Cythonizing src\lxml\_elementpath.py
[2/6] Cythonizing src\lxml\builder.py
[3/6] Cythonizing src\lxml\etree.pyx
warning: src\lxml\xmlerror.pxi:660:22: local variable 'args' referenced before assignment warning: src\lxml\xmlerror.pxi:661:69: local variable 'args' referenced before assignment warning: src\lxml\xmlerror.pxi:662:20: local variable 'args' referenced before assignment warning: src\lxml\xmlerror.pxi:667:22: local variable 'args' referenced before assignment warning: src\lxml\xmlerror.pxi:668:73: local variable 'args' referenced before assignment warning: src\lxml\xmlerror.pxi:669:20: local variable 'args' referenced before assignment warning: src\lxml\xmlerror.pxi:674:22: local variable 'args' referenced before assignment warning: src\lxml\xmlerror.pxi:675:73: local variable 'args' referenced before assignment warning: src\lxml\xmlerror.pxi:676:20: local variable 'args' referenced before assignment
[4/6] Cythonizing src\lxml\html\diff.py
[5/6] Cythonizing src\lxml\objectify.pyx
[6/6] Cythonizing src\lxml\sax.py
running build_ext
building 'lxml.etree' extension
creating build
creating build\temp.win32-cpython-312
creating build\temp.win32-cpython-312\Release
creating build\temp.win32-cpython-312\Release\src
creating build\temp.win32-cpython-312\Release\src\lxml
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x86\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -DLIBXML_STATIC -DLIBXSLT_STATIC -DLIBEXSLT_STATIC -DCYTHON_CLINE_IN_TRACEBACK=0 -Isrc\lxml -Isrc\lxml\includes -Ilibs\libxml2-2.11.7.win64\include -Ilibs\libxslt-1.1.39.win64\include -Ilibs\zlib-1.2.12.win64\include -Ilibs\iconv-1.15.win64\include -Isrc -IC:\Temp\lxml\.venv\include -IC:\dev\Python\Python312\include -IC:\dev\Python\Python312\Include "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\VS\include" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\um" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\shared" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\winrt" "-IC:\Program Files (x86)\Windows Kits\10\\include\10.0.19041.0\\cppwinrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\ATLMFC\include" "-IC:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.19041.0\cppwinrt" /Tcsrc\lxml\etree.c /Fobuild\temp.win32-cpython-312\Release\src\lxml\etree.obj -w
cl : Command line warning D9025 : overriding '/W3' with '/w'
etree.c
creating C:\Temp\lxml\build\lib.win32-cpython-312
creating C:\Temp\lxml\build\lib.win32-cpython-312\lxml
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX86\x86\link.exe" /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:libs\libxml2-2.11.7.win64\lib /LIBPATH:libs\libxslt-1.1.39.win64\lib /LIBPATH:libs\zlib-1.2.12.win64\lib /LIBPATH:libs\iconv-1.15.win64\lib /LIBPATH:C:\Temp\lxml\.venv\libs /LIBPATH:C:\dev\Python\Python312\libs /LIBPATH:C:\dev\Python\Python312 /LIBPATH:C:\Temp\lxml\.venv\PCbuild\win32 "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\ATLMFC\lib\x86" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\\lib\10.0.19041.0\\um\x86" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\ATLMFC\lib\x86" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.8\lib\um\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x86" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x86" libxslt_a.lib libexslt_a.lib libxml2_a.lib iconv_a.lib zlib.lib WS2_32.lib /EXPORT:PyInit_etree build\temp.win32-cpython-312\Release\src\lxml\etree.obj /OUT:build\lib.win32-cpython-312\lxml\etree.cp312-win_amd64.pyd /IMPLIB:build\temp.win32-cpython-312\Release\src\lxml\etree.cp312-win_amd64.lib Creating library build\temp.win32-cpython-312\Release\src\lxml\etree.cp312-win_amd64.lib and object build\temp.win32-cpython-312\Release\src\lxml\etree.cp312-win_amd64.exp
etree.obj : error LNK2001: unresolved external symbol _xmlStrchr
etree.obj : error LNK2001: unresolved external symbol _xmlIOParseDTD
etree.obj : error LNK2001: unresolved external symbol _xmlMemShow
etree.obj : error LNK2001: unresolved external symbol __imp__PyUnicode_AsEncodedString
[...]
etree.obj : error LNK2001: unresolved external symbol __imp__PyExc_ModuleNotFoundError etree.obj : error LNK2001: unresolved external symbol __imp___PyObject_GetDictPtr build\lib.win32-cpython-312\lxml\etree.cp312-win_amd64.pyd : fatal error LNK1120: 503 unresolved externals error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.29.30133\\bin\\HostX86\\x86\\link.exe' failed with exit code 1120





_______________________________________________
lxml - The Python XML Toolkit mailing list -- lxml@python.org
To unsubscribe send an email to lxml-le...@python.org
https://mail.python.org/mailman3/lists/lxml.python.org/
Member address: arch...@mail-archive.com

Reply via email to