zeb*_*und 4 c++ undefined-reference
有人能告诉我这意味着什么吗?
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
make: *** [program] Error 1
Run Code Online (Sandbox Code Playgroud)
我的make文件如下所示:
program : main.o render.o screenwriter.o
g++ -o main.o render.o screenwriter.o -lSDL
main.o : main.cpp render.h screenwriter.h
g++ -c main.cpp render.h screenwriter.h -lSDL
render.o : render.h render.cpp
g++ -c render.h render.cpp -lSDL
screenwriter.o : screenwriter.h screenwriter.cpp
g++ -c screenwriter.h screenwriter.cpp -lSDL
clean:
rm program main.o render.o screenwriter.o -lSDL
Run Code Online (Sandbox Code Playgroud)
谢谢.
第一条规则应该是
program : main.o render.o screenwriter.o
g++ -o program main.o render.o screenwriter.o -lSDL
Run Code Online (Sandbox Code Playgroud)
假设您要链接 main.o render.o screenwriter.o到一个名为的可执行文件program
此外,在编译步骤(-c)中,该-lDSL 位无用,它是一个链接器指令.
将第二行更改为:
g++ -o program main.o render.o screenwriter.o -lSDL
^^^^^^^
Run Code Online (Sandbox Code Playgroud)
否则你的输出是main.o,你在输入中遗漏了它.
甚至比手动维护殉难更好的是使用特殊的宏:
$(CXX) -o $@ $+ -lSDL
Run Code Online (Sandbox Code Playgroud)
因此,即使您扩展程序,也不必再次编辑该命令.
| 归档时间: |
|
| 查看次数: |
9964 次 |
| 最近记录: |