gpt4 book ai didi

c - 预期 ‘=’ , ‘,’ , ‘;’ , ‘asm’ 或 ‘__attribute__’ token 之前的 ‘{’

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:54 25 4
gpt4 key购买 nike

我的代码中出现了大量此类错误。不知道为什么。以下是错误示例:

In file included from mipstomachine.c:2:0,
from assembler.c:4:
rtype.c: In function ‘getRegister’:
rtype.c:6:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token

我现在的文件布局,为了解释,有mipstomachine.c,里面有assembler.c,里面有rtype.c

这是我的 rtype.c 的第 4-6 行

void rToMachine(char* line, char* mach, int currentSpot, instr currentInstruction,
rcode* rcodes)
{

对于 rtype.c 中声明的每个函数,我都会收到这样的错误

有什么想法吗?谢谢大家!

最佳答案

由于在评论中正确书写会很长,所以我将其添加为答案。

当处理多个源文件时,应该将它们一个一个地编译成目标文件,然后在一个单独的步骤中将它们链接在一起形成最终的可执行程序。

首先制作目标文件:

$ gcc -Wall -g file_1.c -c -o file_1.o
$ gcc -Wall -g file_2.c -c -o file_2.o
$ gcc -Wall -g file_3.c -c -o file_3.o

标志 -c 告诉 GCC 生成目标文件。标志 -o 告诉 GCC 输出文件的名称,在本例中是目标文件。额外的标志 -Wall-g 告诉 GCC 生成更多警告(总是好的,修复警告实际上可能会修复可能导致运行时错误的事情)并生成调试信息。

然后将文件链接在一起:

$ gcc file_1.o file_2.o file_3.o -o my_program

此命令告诉 GCC 调用链接器并将所有命名目标文件链接到可执行程序 my_program


如果多个源文件中需要结构和/或函数,那就是您使用头文件的时候。

例如,假设您有一个结构 my_structure 和一个函数 my_function 需要从多个源文件中使用,您可以创建一个头文件 header_1.h 像这样:

/* Include guard, to protect the file from being included multiple times
* in the same source file
*/
#ifndef HEADER_1
#define HEADER_1

/* Define a structure */
struct my_structure
{
int some_int;
char some_string[32];
};

/* Declare a function prototype */
void my_function(struct my_structure *);

#endif

这个文件现在可以像这样包含在源文件中:

#include "header_1.h"

关于c - 预期 ‘=’ , ‘,’ , ‘;’ , ‘asm’ 或 ‘__attribute__’ token 之前的 ‘{’,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16228958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com