LINUX.ORG.RU

Не возможно скомпилировать freerdp на arch linux (ld)

 , ,


1

1

Взять вот этот модуль для работы с rdp через python - https://github.com/tautek/py-freerdp
При попытке собрать его:

python3 setup.py build_ext --inplace

или
pip3 install --global-option=build_ext .

Получаю одну и ту же ошибку:
[foozzi@foozzi py-freerdp]$ sudo pip3 install --global-option=build_ext .
/usr/lib/python3.6/site-packages/pip/commands/install.py:194: UserWarning: Disabling all use of wheels due to the use of --build-options / --global-options / --install-options.
  cmdoptions.check_install_build_global(options)
Processing /home/foozzi/projects/py-freerdp
Installing collected packages: freerdp
  Running setup.py install for freerdp ... error
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-67u58bo8-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" build_ext install --record /tmp/pip-q8af423m-record/install-record.txt --single-version-externally-managed --compile:
    running build_ext
    building 'freerdp' extension
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fPIC -Isrc -Isub_modules/FreeRDP/include -Isub_modules/FreeRDP/winpr/include -I/usr/include/python3.6m -c src/freerdp.c -o build/temp.linux-x86_64-3.6/src/freerdp.o
    src/freerdp.c: В функции «destroy»:
    src/freerdp.c:454:46: предупреждение: signed and unsigned type in conditional expression [-Wsign-compare]
         int timeout = ms_timeout == 0 ? INFINITE : ms_timeout;
                                                  ^
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fPIC -Isrc -Isub_modules/FreeRDP/include -Isub_modules/FreeRDP/winpr/include -I/usr/include/python3.6m -c src/freerdp_py.c -o build/temp.linux-x86_64-3.6/src/freerdp_py.o
    gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -fPIC -Isrc -Isub_modules/FreeRDP/include -Isub_modules/FreeRDP/winpr/include -I/usr/include/python3.6m -c src/freerdp_const_py.c -o build/temp.linux-x86_64-3.6/src/freerdp_const_py.o
    creating build/lib.linux-x86_64-3.6
    gcc -pthread -shared -Wl,-O1,--sort-common,--as-needed,-z,relro -Wl,-O1,--sort-common,--as-needed,-z,relro build/temp.linux-x86_64-3.6/src/freerdp.o build/temp.linux-x86_64-3.6/src/freerdp_py.o build/temp.linux-x86_64-3.6/src/freerdp_const_py.o -L/usr/lib -l:libfreerdp-client.so.1.1.0 -l:libfreerdp-gdi.so.1.1.0 -l:libfreerdp-utils.so.1.1.0 -l:libfreerdp-core.so.1.1.0 -l:libwinpr-synch.so.0.1.0 -lpython3.6m -o build/lib.linux-x86_64-3.6/freerdp.cpython-36m-x86_64-linux-gnu.so
    /usr/bin/ld: cannot find -l:libfreerdp-client.so.1.1.0
    /usr/bin/ld: cannot find -l:libfreerdp-gdi.so.1.1.0
    /usr/bin/ld: cannot find -l:libfreerdp-utils.so.1.1.0
    /usr/bin/ld: cannot find -l:libfreerdp-core.so.1.1.0
    /usr/bin/ld: cannot find -l:libwinpr-synch.so.0.1.0
    collect2: ошибка: выполнение ld завершилось с кодом возврата 1
    error: command 'gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-67u58bo8-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" build_ext install --record /tmp/pip-q8af423m-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-67u58bo8-build/

Погуглил, пишут что gcc не может найти в стандартных дирах ld, но как мне в таком случае собрать собственно модуль?

★★★

Ответ на: комментарий от foozzi

В пакете freerdp нет библиотек с указанными именами, там вот такие файлы:

libfreerdp-client2.so
libfreerdp-client2.so.2
libfreerdp-client2.so.2.0.0
libfreerdp2.so
libfreerdp2.so.2
libfreerdp2.so.2.0.0
libwinpr-tools2.so
libwinpr-tools2.so.2
libwinpr-tools2.so.2.0.0
libwinpr2.so
libwinpr2.so.2
libwinpr2.so.2.0.0
    /usr/bin/ld: cannot find -l:libfreerdp-client.so.1.1.0
    /usr/bin/ld: cannot find -l:libfreerdp-gdi.so.1.1.0
    /usr/bin/ld: cannot find -l:libfreerdp-utils.so.1.1.0
    /usr/bin/ld: cannot find -l:libfreerdp-core.so.1.1.0
    /usr/bin/ld: cannot find -l:libwinpr-synch.so.0.1.0

Либо создавай ссылки с нужными именами, либо правь сборочный сценарий модуля.

kostik87 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.