2

main.cpp、pattern.cpp、および pattern.h (2 つの関数宣言を含むがクラスを含まないヘッダー ファイル。これらの関数は pattern.cpp で定義され、main.cpp には #include "pattern.h" が含まれる) を含む C++ プログラムをコンパイルする場合次のように入力します。

clang++ main.cpp

エラー メッセージは次のとおりです。

/tmp/cc-nrPup0.o: In function `main':
main.cpp:(.text+0x69): undefined reference to `pattern(int, int)'
collect2: ld returned 1 exit status
clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)

これを修正するにはどうすればよいですか? 入力しようとし-vましたが、clang の出力が終了し、無効なコマンドでした

4

1 に答える 1

2

コンパイルしただけのようですが、でmain.cppはありませんpattern.cpp。実行可能ファイルを一緒にリンクすると、 で定義された関数pattern.cppが見つかりません。未定義の参照は、あなたがどこかmain.cppで使用していることを示しています。コンパイルされていないpattern(int, int)場合、これが問題になる理由がわかります。pattern.cpp

次のようにコンパイルしてみてください:

clang++ -Wall -pedantic main.cpp pattern.cpp -o main
于 2013-08-13T21:03:37.597 に答える