Рабочая система - 64-биный Debian GNU/Linux 7.6, необходимо собрать 32-битное приложение использующее libssl.
Код: Выделить всё
$ dpkg -l | grep libssl
ii libssl-dev 1.0.1e-2+deb7u11 amd64 SSL development libraries, header files and documentation
ii libssl1.0.0:amd64 1.0.1e-2+deb7u11 amd64 SSL shared libraries
ii libssl1.0.0:i386 1.0.1e-2+deb7u11 i386 SSL shared libraries
$ ls -l /usr/lib/i386-linux-gnu/lib*
-rw-r--r-- 1 root root 1816200 Jun 15 16:12 /usr/lib/i386-linux-gnu/libcrypto.so.1.0.0
-rw-r--r-- 1 root root 358880 Jun 15 16:12 /usr/lib/i386-linux-gnu/libssl.so.1.0.0
$ ls -l /usr/lib/x86_64-linux-gnu/libcrypto*
-rw-r--r-- 1 root root 4151458 Jun 15 15:36 /usr/lib/x86_64-linux-gnu/libcrypto.a
lrwxrwxrwx 1 root root 18 Jun 15 15:36 /usr/lib/x86_64-linux-gnu/libcrypto.so -> libcrypto.so.1.0.0
-rw-r--r-- 1 root root 2048480 Jun 15 15:36 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
Компилятору при сборке устанавливается флаг -m32, но линковщик не может найти библиотеку при указании с помощью -lcrypto, решил проблему указанием полного пути до библиотеки.
В предыдущем релизе, Debian 6, с устанавленым пакетом ia32-lib было достаточно установить флаг -m32 и указать ликоваться с библиотекой через -lcrypto.
Вопрос - как по другому можно решить этот вопрос, так как я не могу гарантировать, что сборка приложения будет всегда производится в Debian 7.
Спасибо.