我试图在我的 bash 上编译两个文件:Main.c、DB.c 这是我编译它们的方式,它们没有给我任何错误:gcc -c Main.c DB.c` 所以他们应该创建 Main.o 和 DB.o。现在我试图编译 Main.o 和 DB.o:-Wall Main.o DB.o 但是当我尝试编译这些时,bash 给了我 -Wall:未找到命令
有人遇到过这个问题吗?
答案1
-Wall
不是命令1,而是命令的一个选项(显示所有警告)gcc
。从man gcc
-Wall
This enables all the warnings about constructions that some users
consider questionable, and that are easy to avoid (or modify to
prevent the warning), even in conjunction with macros. This also
enables some language-specific warnings described in C++ Dialect
Options and Objective-C and Objective-C++ Dialect Options.
要链接目标文件以生成可执行文件a.out
,您需要
gcc Main.o DB.o
或(给出另一个可执行文件名称myprog
)
gcc -o myprog Main.o DB.o
或者,用单个命令进行编译和链接(带有警告)
gcc -Wall -o myprog Main.c DB.c
[1].wall
是 - 但那是完全不相关的事情
答案2
尝试像这样构建和编译:
gcc 文件名.c -o 输出文件名 ./输出文件名
分别对两个文件执行此操作。在后面加上 -o 后,以下文件应以名称“outputFile_name”进行编译