Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 编译单个c++;使用-g标志的makefile文件不';行不通_C++_Makefile_G++ - Fatal编程技术网

C++ 编译单个c++;使用-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

我一直在尝试使用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.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