C++ にかなり慣れていないので、基本的に g++ コンパイラ、特にライブラリの組み込みについて質問があります。次のメイクファイルを検討してください。
CPPFLAGS= -I libraries/boost_1_43_0-bin/include/ -I libraries/jpeg-8b-bin/include/
LDLIBS= libraries/jpeg-8b-bin/lib/libjpeg.a
# LDLIBS= -L libraries/jpeg-8b-bin/lib -llibjpeg
all: main
main: main.o
c++ -o main main.o $(LDLIBS)
main.o: main.cpp
c++ $(CPPFLAGS) -c main.cpp
clean:
rm -rf *.o main
ご覧のとおり、LDLIBS 変数を 2 回宣言しました。上記のメイクファイルを使用すると、コードがコンパイルされて機能します。しかし、最初の LDLIBS エントリを非アクティブにし、2 番目のエントリをアクティブにすると、ld: library not found for -llibjpeg
. 私の名前libjpeg.a
は呼ばれていないだけでlibjpeg
、別の名前が付いていると思います。
特定の「ライブラリファイル」の名前を見つける方法はありますlibsomething.a
かlibsomething.dyn
?
わかりました、すべての回答に感謝します。現在は機能しています。1 つだけ疑問が残ります。単に「lib」を除外するのは慣例なのか、それとも名前を見つけるための標準化された方法があるのかということです。