用于执行C ++程序的命令行参数

时间:2018-04-25 11:59:05

标签: c++ linux command-line

这是我的c ++程序的主要内容:

gcc  -o "argument1" "argument2" "argument3" prog.cpp  

第一个参数是一个文件,其余的是布尔值 我想知道命令行编译程序的正确语法是什么 我试过了:

g++ -std=c++11 -o "argument1" "argument2" "argument3" prog.cpp

linker command failed with exit code 1 (use -v to see invocation)

但是我收到了这个错误:

Intent captureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

我怀疑我没有正确传递参数,因此我的程序没有正确链接到输入文件(argument1)。
谢谢你纠正我。

4 个答案:

答案 0 :(得分:4)

主要和命令行参数

Main可以有一个two forms

int main()
int main(int argc, char** argv)

在第一种形式中,您不能传递任何参数。 在第二种形式中,argc是在命令行上传递的参数的计数,argv是包含长度为char*的{​​{1}}(c样式字符串)的数组命令行参数。

因此,例如,如果您将程序称为

argc

然后./program apple bananna carrot date 将等于5,argc将包含以下值:

argv

编译和运行程序

C ++不是解释型语言,因此必须进行编译。假设您的源代码位于名为argv[0] = "./program" -- the name of your program as called on the command line. argv[1] = "apple" argv[2] = "bananna" argv[3] = "carrot" argv[4] = "date" 的文件中,并且您希望将可执行文件调用program.cpp,那么您将按如下方式调用program

g++

如果您g++ -o program program.cpp 当前目录,您现在应该在源代码旁边的目录中看到名为ls的文件。您现在可以运行此程序(再次,假设您将输出文件命名为program

program

并且字符串./program arg1 arg2 arg3 arg1arg2将如上所述传递到main。

答案 1 :(得分:2)

似乎你是新人,因为你混合了很多!

首先,你必须编译你的程序。对于cpp程序,通常使用g ++。所以用

编译它
g++ -Wall -o prg prg.cpp

之后您必须使用

修改您的访问权限
chmod +x prg

能够调用该程序。

现在您可以使用您的参数调用您的程序:

./prg arg1 arg2 arg3

答案 2 :(得分:1)

C ++编码/程序执行过程如下(至少对于简单的一个文件程序):

步骤1:编写代码,例如名为prog.cpp的文件

步骤2:将代码编译为可执行文件。在我们的例子中,g++ -o myprog prog.cpp

第3步:执行程序。在我们的例子中,myprog "argument1" "argument2" "argument3"

答案 3 :(得分:0)

主要功能定义如下:

int main (int argc, char *argv[])

int main (int argc, char **argv)

据我了解,argc = Argument Count和argv = Argument Vector。 argc是参数的数量(您可以选择多少个参数),argv包含该参数的数量,其中包含您希望从命令行传递到程序的所有实际数据。但请记住,至少有一个参数首先出现:程序的名称。

在编译期间但在运行时期间不使用它们。运行程序不同于编译和链接,必须先完成(在你的情况下使用gcc)。