私はmakeの問題に遭遇しました。私は3つのファイルを持っています。Makefileをリンクする
main.cpp | src/Math/Vector2.cpp |
main: vector2.o main.o
g++ -o main.o vector2.o
main.o: main.cpp
g++ -o main.o main.cpp -c
vector2.o: src/Math/Vector2.cpp src/Math/Vector2.hpp
g++ -o vector2.o src/Math/Vector2.cpp -lm -c
私は手動でこれらのコマンドをコピーすると、それは完全に罰金コンパイル:SRC /数学/ Vector2.hppは
は、ここに私のメイクファイルです。 しかし$メイン戻り
g++ main.cpp -o main
/tmp/ccnRZ4UD.o: In function `main':
main.cpp:(.text+0x42): undefined reference to `
phy2d::Maths::Vector2f::Vector2f(double, double)'
main.cpp:(.text+0x66): undefined reference to `
phy2d::Maths::Vector2f::Vector2f(double, double)'
main.cpp:(.text+0x79): undefined reference to `
phy2d::Maths::Vector2f::distance(phy2d::Maths::Vector2f const&)
const'
collect2: error: ld returned 1 exit status
<builtin>: recipe for target 'main' failed
make: *** [main] Error 1
任意のアイデアを作ります?
は '--dry-run'を作る実行してみて、これはあなたがコマンドが実行を行い正確な表示されます。次に、このエラーがどのステップで発生し、なぜ発生しているのかを確認することができます。 –
'g ++ main.cpp -o main'これはMakefileにあるものと同じではありません。 Makfileは余分な '-c'を持っています。 – kaylum
とにかく、あなたのmakefileが間違って見えます。これは 'main'実行可能ファイルを生成しません。両方とも 'main.o'を生成する2つのターゲットがあります – kaylum