как правильно собрать тиликс?

Я решил собрать tilix путем клонирования кода из репозитория.

Я понимаю, что компилятор должен быть LDC, но что именно менять не знаю.

dub build --build release

Но я наткнулся на текущую проблему:

      /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib7adler32FkAxvZk: error: undefined reference to 'adler32'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib5crc32FkAxvZk: error: undefined reference to 'crc32'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib8compressFAxviZAh: error: undefined reference to 'compress2'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib10uncompressFAxvmiZAv: error: undefined reference to 'inflate'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib10uncompressFAxvmiZAv: error: undefined reference to 'inflateEnd'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib10uncompressFAxvmiZAv: error: undefined reference to 'inflateEnd'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib8Compress5errorMFiZv: error: undefined reference to 'deflateEnd'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib8Compress6__dtorMFZv: error: undefined reference to 'deflateEnd'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib8Compress8compressMFAxvZQe: error: undefined reference to 'deflate'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib8Compress5flushMFiZAv: error: undefined reference to 'deflate'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib8Compress5flushMFiZAv: error: undefined reference to 'deflate'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib8Compress5flushMFiZAv: error: undefined reference to 'deflateEnd'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib10UnCompress5errorMFiZv: error: undefined reference to 'inflateEnd'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib10UnCompress6__dtorMFZv: error: undefined reference to 'inflateEnd'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function _D3std4zlib10UnCompress10uncompressMFAxvZQe: error: undefined reference to 'inflate'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function deflateInit: error: undefined reference to 'deflateInit_'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function inflateInit: error: undefined reference to 'inflateInit_'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function deflateInit2: error: undefined reference to 'deflateInit2_'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function inflateInit2: error: undefined reference to 'inflateInit2_'
/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/libphobos2-ldc.a(zlib.o):function inflateBackInit: error: undefined reference to 'inflateBackInit_'
collect2: error: ld returned 1 exit status

1 ответ

Это сообщение на форуме предполагает, что оно связано со способом пакетов Ubuntu ldc:

Это похоже на неправильно настроенный дистрибутив-LDC. zlib обычно интегрируется в libphobos, но дистрибутивы, как правило, предпочитают libz.so дистрибутива и исправляют его. Однако это должно быть обработано в /etc/ldc2.conf, с помощью чего-то вроде-defaultlib=phobos2-ldc,z,druntime-ldc(и, возможно, зависимость пакета zlib1g-dev)

Покопавшись в /etc/ldc2.conf, вы сможете лучше понять, что пошло не так.

В качестве альтернативы, dmd поставляется со своими собственными исходными кодами zlib (по крайней мере, в ArchLinux), которые, как я полагаю, могут быть скомпилированы в ваш исполняемый файл с помощью importC. Стоит попробовать, на моей машине работает.

      dub build --build release --compiler=dmd
Другие вопросы по тегам