Какая пропущенная библиотека приводит к сообщению "/usr/bin/ld: not find -lglib-2.0"?
Я кросс-компилирую программу Lazarus, создаю 32-битную программу на 64-битной системе Ubuntu 14.04 Trusty Tahr, и все, очевидно, компилируется до самого конца, когда я получаю это сообщение
/usr/bin/ld: cannot find -lglib-2.0
Какое полное имя библиотеки, отсутствие которой приводит к этому сообщению об ошибке?
libc6-dev:i386
представляется наиболее вероятной библиотекой, но при попытке установить ее с помощью apt указывает build-essential g++ gcc gcc-multilib
будет удален, поэтому я отменяю это.
sudo apt-get install libc6-dev:i386
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
linux-libc-dev linux-libc-dev:i386
Suggested packages:
glibc-doc:i386 manpages-dev:i386
Recommended packages:
gcc:i386 c-compiler:i386
The following packages will be REMOVED
build-essential g++ gcc gcc-multilib
The following NEW packages will be installed
libc6-dev:i386 linux-libc-dev:i386
The following packages will be upgraded:
linux-libc-dev
1 to upgrade, 2 to newly install, 4 to remove and 18 not to upgrade.
Need to get 3,126 kB of archives.
After this operation, 12.6 MB of additional disk space will be used.
Do you want to continue? [Y/n]
1 ответ
Оказывается, это было libglib2.0-0:i386
пакет. Он был уже установлен ранее, но не был полностью настроен.
Он присутствовал в /lib/i386-linux
каталог, и я должен был создать символическую ссылку на него, включить его в fpc.cfg
Файл конфигурации, используемый Free Pascal.
locate libglib | grep ^/lib
произведено:
/lib/i386-linux-gnu/libglib-2.0.so.0
/lib/i386-linux-gnu/libglib-2.0.so.0.4002.0
/lib/x86_64-linux-gnu/libglib-2.0.so.0
/lib/x86_64-linux-gnu/libglib-2.0.so.0.4002.0
Я связал это с ожидаемым именем:
ln -s /lib/i386-linux-gnu/libglib-2.0.so.0 /lib/i386-linux-gnu/libglib-2.0.so
затем добавлен в установки Lazarus fpc.cfg
файл
#ifdef cpui386
-Fl/usr/lib32
-Fl/lib/i386-linux-gnu
#endif