Linuxで共有ライブラリを実装してテストしようとしましたが、「CEDD(char *) 'への未定義参照」というエラーが発生します。共有ライブラリ関数への未定義の参照
私は、次のパラメータを使用してEclipseを使用します。ファイル(ここではOK すべてがある)
- パス。パスが正しいと 名前はWISE_C(フルネーム: libWISE_C.so)である
マイコード:
#include <iostream>
#include <Descriptor.h>
int main() {
char* path = "/export/home/pdmazubi3/workspace/proj1/src/pic.jpg";
double * cedd = CEDD(path); ///// <-ERROR!
std::cout << "!!!Hello World!!!" << cedd[1];
return 0;
}
ヘッダーDescriptor.h:私はテストのために使用
テストプログラムの開発:
double* CEDD(char* path);
望ましい機能を持つDescriptor.cの一部:
#include "Descriptor.h"
#include "highgui.h"
#include "cv.h"
double* CEDD(char* path)
{
IplImage* srcImg;
IplImage* ImageGrid;
...
}
私は何をしていますか?私はインターネットで多くの記事を暴言しましたが、解決策が見つかりませんでした。
未定義の `CEDD(char *) 'はコンパイラまたはリンカのエラーですか?
素晴らしい!あなたが正しいです!今私はCライブラリをテストするためにCプログラムを使用します。)しかし、ライブラリが接続されているとき(Paths)コンパイルされたバイナリファイルを取得しません(私もエラーは発生しません)。 libのすべてのパスを削除すると、出力に実行ファイルが得られます!どうすればいい? – user101375
私は日食の経験がないし、エラーメッセージがなければ私は無知だ。おそらくあなたは何とか実行するコマンドのログを得ることができます。 – mweerden