主要功能被神秘地宣布在未知的地方

Main function being mysteriously declared somewhere unknown

本文关键字:未知 功能      更新时间:2023-10-16

所以我确实有这个星球上最简单的C++文件,它不会编译。我似乎不知道main之前是在哪里定义的,是不是在某种奇怪的搜索路径上?我到处找都找不到。

#include <iostream>

int main(int argv, char* argv[]) {
    std::cout << "It worked!" << std::endl;
    return 0;
}

当我编译时,会发生这种情况:

g++ -c main.cpp -O3
main.cpp:4:31: error: conflicting declaration ‘char** argv’
 int main(int argv, char* argv[]) {
                               ^
main.cpp:4:14: error: ‘argv’ has a previous declaration as ‘int argv’
 int main(int argv, char* argv[]) {
              ^
main.cpp:4:5: warning: ‘int main(int)’ takes only zero or two arguments [-Wmain]
 int main(int argv, char* argv[]) {
     ^
make: *** [main.o] Error 1

应该是:

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

您的两个参数当前都被称为argv。

Main函数在其他任何地方都没有定义。主函数的参数具有相同的名称。改变它们。