C++/Qt5 プロジェクトで OpenGL へのリンクに失敗しています。次のコマンドを使用してリンクします。
g++ -m64 -Wl,[...] -o [...] [...].o \
-L/usr/X11R6/lib64 -L[...]/qt-5.0.0/5.0.0/gcc_64/lib \
-lQt5Widgets -lQt5Network -lQt5Gui -lQt5Core -lGL -lpthread
[...]
重要なことを隠していないことを願っています。そうだと思われる場合は、お知らせください。
次のエラーが表示されます。
/usr/bin/ld: cannot find -lGL
私は Lubuntu 12.10 システムを使用しており、http://qt-project.org/downloadsの Qt5 を使用しています。システムを新しくインストールしたので、最初にUbuntuのnvidia-current
パッケージをインストールして再起動しました。特に、次のライブラリがシステムにインストールされています。
$ ll /usr/lib/nvidia-current/
[...]
lrwxrwxrwx 1 root root 10 Oct 6 04:58 libGL.so -> libGL.so.1
lrwxrwxrwx 1 root root 15 Oct 6 04:58 libGL.so.1 -> libGL.so.304.43
-rw-r--r-- 1 root root 1076560 Oct 6 04:58 libGL.so.304.43
[...]
このパスをデフォルトのライブラリ検索パスに追加する方法をグーグルで検索しました.g++
サブフォルダーではnvidia-current
なく/usr/lib
. ld.conf.d
そこで、Ubuntuにパスを追加しました。ldconfig
次のコマンドで更新して確認しました。
$ ldconfig -p | grep libGL.so
libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-current/libGL.so.1
libGL.so.1 (libc6) => /usr/lib32/nvidia-current/libGL.so.1
libGL.so (libc6,x86-64) => /usr/lib/nvidia-current/libGL.so
libGL.so (libc6) => /usr/lib32/nvidia-current/libGL.so
だから、すべてがうまく見えます!それでも(再起動後も)、上記のエラーが表示されます。何か不足していますか?
編集:
を追加する-L/usr/lib/nvidia-current/
と、すべて正常に動作します。しかし、これはデフォルト パスのライブラリに対してリンクする正しい方法ではないようです。