gccで使用するcライブラリがあります。ライブラリの拡張子は .lib ですが、常に静的ライブラリとしてリンクされています。ライブラリをCコードとして使用するプログラムを作成すると、すべてがOKになります。ただし、ファイルの名前を .cpp に変更すると (c/c++ の両方で機能する単純なことを行う)、未定義の参照が取得されます。これらは私がテスト目的で書いた単純な小さなプログラムなので、凝ったものではありません。私は以下を使用してコンパイルします:
gcc -g -Wall -I <path to custom headers> -o program main.c customlibrary.lib -lm -lpthread
上記は魅力のように機能します。でも:
g++ -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread
また
gcc -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread -lstdc++
customlibrary.lib 内の関数への参照が未定義になります。customlibrary.a という名前のシンボリック リンクを作成しようとしましたが、うまくいきませんでした。
g++ find が私のライブラリを認識しないのはなぜですか。残念ながら、ライブラリのソース コードにアクセスすることはできませんが、c-lib を c++ にリンクすることは問題ではありませんか?