C++ 编译单个c++;使用-g标志的makefile文件不';行不通
我一直在尝试使用Makefile来编译单个cpp文件,然后轻松清理生成的可执行文件。但是,下面显示的Makefile代码不使用-g编译代码。因此,我无法在可执行文件上使用gdb。如果我在命令行中使用“g++-g pairs_with_k_diff.cpp”编译代码,我就能够成功编译带有-g标志的代码。有人能指出我在下面显示的Makefile代码中的错误吗C++ 编译单个c++;使用-g标志的makefile文件不';行不通,c++,makefile,g++,C++,Makefile,G++,我一直在尝试使用Makefile来编译单个cpp文件,然后轻松清理生成的可执行文件。但是,下面显示的Makefile代码不使用-g编译代码。因此,我无法在可执行文件上使用gdb。如果我在命令行中使用“g++-g pairs_with_k_diff.cpp”编译代码,我就能够成功编译带有-g标志的代码。有人能指出我在下面显示的Makefile代码中的错误吗 pawkdiff: pairs_with_k_diff.o g++ pairs_with_k_diff.o -o pawkdiff
pawkdiff: pairs_with_k_diff.o
g++ pairs_with_k_diff.o -o pawkdiff
pawkdiff.o: pairs_with_k_diff.cpp
g++ -c -g pairs_with_k_diff.cpp
clean:
rm *.o pawkdiff
当我调用make时,我得到以下输出(如您所见,-g标志不存在)
您没有将
与_k_diff.o
配对的规则,因此使用默认规则
修正第二条规则,使其生效:
pairs_with_k_diff.o: pairs_with_k_diff.cpp
g++ -c -g pairs_with_k_diff.cpp
或者作为替代方案:
pawkdiff: pawkdiff.o
g++ pairs_with_k_diff.o -o pawkdiff
pawkdiff.o: pairs_with_k_diff.cpp
g++ -c -g pairs_with_k_diff.cpp -o pawkdiff.o
谢谢!我理解我的错误。“另类”也很有见地@谢谢你的建议!我刚学会怎么做。
pawkdiff: pawkdiff.o
g++ pairs_with_k_diff.o -o pawkdiff
pawkdiff.o: pairs_with_k_diff.cpp
g++ -c -g pairs_with_k_diff.cpp -o pawkdiff.o