1

私は Lazarus プログラムをクロスコンパイルし、64 ビットの Ubuntu 14.04 Trusty Tahr システムで 32 ビットのプログラムを作成しています。このメッセージが表示されると、すべてが最後までコンパイルされるようです。

/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]
4

1 に答える 1

0

libglib2.0-0:i386パッケージだったことが判明。以前に既にインストールされていましたが、完全には構成されていませんでした。

それは/lib/i386-linuxディレクトリに存在し、それへのシンボリックリンクを作成して、fpc.cfgFree 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
于 2015-03-09T19:25:37.310 に答える