単純なX11関数を使用する単純なコードベースをコンパイルしようとしていますが、コンパイル時にエラーが発生します。
(.text+0x1c): undefined reference to `XShmQueryVersion'
コードでXShmQueryVersion
関数を使用し、
g++ myprogram.c -o program
何が足りないのですか?
X11関数を見つけるライブラリをコンパイラに指示する必要があります。XOpenDisplay
などのコアX関数はlibX11にあり、拡張機能はlibXext)などの追加ライブラリにあります。XShmQueryVersion
の場合。
これらのライブラリとリンクするようにコンパイラに指示する直接的な方法は、-l
フラグを使用することです。
g++ myprogram.c -o program -lXext -lX11
Makefileなどを使用してより大きなソフトウェアを構築すると、これらのライブラリのフラグを管理するのに役立つツールがあり、Makefileに次のようなものがある可能性があります。
CFLAGS += `pkg-config --cflags x11 xext`
LIBS += `pkg-config --libs x11 xext`