【发布时间】:2018-04-03 20:09:19
【问题描述】:
我正在尝试从 c 文件test.c 生成可执行文件测试。
test.c 包含 main() 函数,但我也想包含来自 stuff.c 的函数。我被告知在stuff.h 中声明函数,然后运行命令gcc -Wall -std=c99 stuff.c stuff.h test.c -o test。
我知道每个组件的作用,但这是我第一次尝试将 gcc 与多个输入文件一起使用。当我尝试运行此命令时,它会失败,并收到错误 clang: error: cannot specify -o when generating multiple output files。
据我所知,我只是想生成一个输出文件,所以我认为这个命令设置不正确。我该如何解决?
【问题讨论】:
-
首先——你不需要编译头文件。
-
您确定您报告的是准确的命令行和准确的错误吗?您提到的
gcc命令应该可以工作。 -
顺便说一句:你不应该将你的程序命名为“test”。如果您尝试调用它,名称“test”会与 shell 命令“test”发生冲突。所以你每个人都必须输入“./test”来解决这个问题。 :-)
-
@Klaus 无论如何都必须以这种方式运行。我怀疑这样的测试程序会被安装到任何地方的运行路径中。
-
@Klaus 这是人们做的事吗?这对我来说更像是一个危险信号,而不是命名你的测试二进制文件。