ライブラリ名cptを使用して、Ubuntuでプログラムを実行しています。ライブラリから必要なヘッダー ファイルをインクルードしていますが、ヘッダー ファイル内の関数にアクセスできないため、プログラムが動作しません。(エラーが表示されます) 関数の完全な定義を含む .cpp ファイルも含める必要があります。必要なヘッダーに関連付けられた .cpp ファイルも含めて、プログラムを実行しています。コンパイル中に -I/Desktop/cpt があるにもかかわらず、このエラーが発生するのはなぜですか?
1062 次
3 に答える
0
.cpp ファイルを含めるべきではなく、コンパイルする必要があります。コンパイルする .cpp ファイルと、.cpp ファイルが必要とする .h ファイルの場所をコンパイラに指定する必要があります。
于 2013-07-09T17:45:46.710 に答える
0
おそらく、ヘッダー ファイルで宣言された関数の実装を提供する、対応する共有/静的ライブラリにプログラムをリンクする必要がありますか?
于 2013-07-09T19:01:12.813 に答える
0
Vladimirm は正しいです。.cpp ファイルを #include する必要はありません。ヘッダー ファイルは、関連する .cpp ファイルの有無にかかわらずコンパイルする必要があります。すべての .cpp ファイルはリンクと呼ばれるプロセスでリンクされますが、ヘッダー ファイルはリンク中に関数のプロトタイプを提供します。
#include の周りに山かっこを使用していますか? 例えば
#include <mylib.h>
その場合は、二重引用符に切り替えることを検討してください。
#include "mylib.h"
参照しているソース ファイルの場所によっては、これが問題になる可能性があります。
于 2013-07-09T19:08:52.533 に答える