编译时未定义的'main'引用

san*_*til 3 c++ linux makefile

可能重复这个这个,但即使在试图挖掘答案一段时间后,我无法解决这个问题.

在尝试编译以下makefile时,

all:  test

    test:  constants.h Point.h Point.cpp line_t.h line_t.cpp drawing_t.h drawing_t.cpp clipper_t.h clipper_t.cpp main.cpp
        g++ -o test Point.cpp line_t.cpp drawing_t.cpp clipper_t.cpp main.cpp -lglut
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

g ++ -o test Point.cpp line_t.cpp drawing_t.cpp clipper_t.cpp main.cpp -lglut /usr/lib/gcc/i686-linux-gnu/4.6/../../../i386-linux-gnu /crt1.o:在函数_start': (.text+0x18): undefined reference tomain'collect2:ld返回1退出状态make:***[test]错误1

我是Makefile的新手.我想,我错过了一些太明显的东西.

pmr*_*pmr 5

显然,您的文件都没有定义带签名的函数

int main();
Run Code Online (Sandbox Code Playgroud)

要么

int main(int argc, char *argv[]);
Run Code Online (Sandbox Code Playgroud)

  • @powerpravin不允许在名称空间`std`中引入名称.它可能会导致非常混乱的结果. (3认同)