我用 C 和 Ubuntu Linux 编写了一个程序,现在我需要将它移植到 UNIX 机器(或者我认为是 UNIX 机器的机器)上。它在我的 Ubuntu 上用 GCC 编译得很好,但是当我尝试在 UNIX 机器上用 GCC 编译它时,它给出了这个错误:
a.c: In function `goUpDir':
a.c:44: parse error before `char'
a.c:45: `newDir' undeclared (first use in this function)
a.c:45: (Each undeclared identifier is reported only once
a.c:45: for each function it appears in.)
a.c: In function `goIntoDir':
a.c:54: parse error before `char'
a.c:57: `newDir' undeclared (first use in this function)
a.c:57: `oldDir' undeclared (first use in this function)
主要问题好像是char
之前的解析错误(其他的都是相关的)
44 char newDir[50] = "";
54 char* oldDir = (char*)get_current_dir_name();
这些只是简单的 C 风格字符串声明。是否需要包含头文件才能使其在 UNIX 中运行?
附言查看您使用的是哪个版本的unix和哪个版本的gcc的命令是什么?了解这一点将使我的问题更加具体。
谢谢
最佳答案
如果您正在编译纯 C,则必须在函数的开头声明变量。我提到这一点是因为大多数人使用 C++ 编译器编译他们的 C 程序,这提供了一些纯 C 编译器通常不可用的资源,最常见的例子是//注释行。
关于c - 不同 gcc 版本的语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/154902/