这是我的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)。
谢谢你纠正我。
答案 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
,arg1
和arg2
将如上所述传递到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)。