Tag: compiler errors

结构中的“警告:空声明中无用的存储类说明符”

typedef struct item { char *text; int count; struct item *next; }; 所以我有这个结构与上面定义的节点,但我得到下面的错误,我无法弄清楚什么是错的。 警告:空声明中无用的存储类说明符};

编译器错误,我无法找到

我收到一个我无法解决的错误。 我彻底完成了我的代码但没有成功。 我究竟做错了什么? 见下面的代码。 编译错误: In function ‘main’: ou1.c:49:1: error: expected ‘while’ before ‘printf’ printf(“End of program!\n”); ^ 我的代码: #include int main(void){ int choice; float price, sum, SUMusd; float rate =1; printf(“Your shopping assistant”); do{ printf(“1. Set exchange rate in usd (currency rate:%f)\n”, rate); printf(“2. Read prices in the foreign currency\n”); printf(“3. End\n”); printf(“\n”); scanf(“%d”, […]

当其中一个失败时,停止多个文件GCC编译

我创建了以下bash构建脚本文件: BLD_INCLUDE=”-I..source/module1 -I..source/module2″ SRC_MOD1=”$(find ../source/module1 -name ‘*.c’)” SRC_MOD2=”$(find ../source/module2 -name ‘*.c’)” BLD_SOURCES=”../source/program.c $SRC_MOD1 $SRC_MOD2″ BLD_LINKER=”” #if there is any need of linker – irrelevant here gcc $BLD_FLAGS $BLD_INCLUDE -o outputobject $BLD_SOURCES $BLD_LINKER 我正在构建这样的因为我需要编译很多文件。 问题是,当使用gcc执行多个文件时,如上所述,如果其中一个文件的编译失败,它会提示错误以及“编译终止”,然后继续执行其他文件。 我想要的行为是,即使其中一个文件无法编译,整个编译也会停止。 也就是说,在我的情况下:假设缺少一个头文件。 现在gcc尝试编译第一个.c ,发现缺少头文件,提示 致命错误:文件丢失错误编译终止。 然后继续执行其他.c文件。 由于头文件总共缺失,它不断给我这个错误并继续执行。 我希望这个构建脚本在编译失败时立即终止,即使是其中一个文件也是如此。 编辑: 与多个文件编译错误时不是Stop GCC的重复,它起源于这个问题本身(阅读评论)。 这个问题甚至可以追溯到这一点。

DEV-C ++中的编译器错误

我编译了以下代码,在我的C代码中使用#include 声明,我在DEV-C ++中遇到以下编译器错误。 我想编译器中应该有一些选项来解决这个问题。 有人可以帮助解决这个问题。 以下是我的示例代码,它取自MSDN网站: #include #include void ErrorExit(LPTSTR lpszFunction) { // Retrieve the system error message for the last-error code LPVOID lpMsgBuf; LPVOID lpDisplayBuf; DWORD dw = GetLastError(); FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); // Display the error message and exit the process lpDisplayBuf […]

MpLab链接错误:无法分配部分(C30编译器)

我已将这两段代码放在一起(最初在此问题中描述)。 我现在刚从MpLab(Microchip MPLAB C30)遇到此错误 Link Error: Could not allocate section .nbss, size = 20004 bytes, attributes = bss near 最奇怪的是,我在编译器手册(Microchip出版物DS51284F)中找到了该消息,甚至是该消息的子字符串,但没有发现任何消息。 我甚至寻找单词allocate ,发现它只有三到四次,从来没有出现过错误信息。 在将这两段代码放在一起之前,我有一个定义为0x8000的段,我用于内存的“大块”,我们将使用它来将数据从Thing-X移动到Thing-Y 我把我在0x8000定义的数据区缩小到1个单独的字节,我仍然收到这个错误。 我没有在Microchip的编译器手册DS51284F中看到此消息。 有没有人曾经解决过这个问题? 链接器有不同的手册吗? 有没有办法让我可以得到一张记忆图来查看我的记忆区域在哪里?

qmake没有找到一些现有的库

当我在Qt Creator(在Linux Ubuntu上使用qmake + GCC)中包含两个库(不是由我制作)到我的(纯C)项目时,我遇到了问题。 我知道,要包含一个lib,可以使用LIBS指令,如本SO答案所述 ; 我已经成功地在Linux和Windows中以这种方式插入了库。 更重要的是,在同样有问题的项目中,我有两个成功插入的库。 但是现在我遇到了一个问题,包括同一个项目中的另外两个库。 其中一个库是C6RUN,两个处理器之间的对话需要,在库的文件夹中有一个/bin和一个/lib文件夹; 第一个文件没有扩展名(它们不是.a或.lib),而第二个文件夹在两个子文件夹中有一组.a。 另一个库位于一个带有/lib子文件夹的文件夹中,里面有.lib。 他们都在Eclipse的一个项目中100%工作(所以没有涉及qmake / Qt Creator)。 我提到了第一个库的/bin文件夹,因为在与基于Eclipse的项目相关的Makefile中,尽管不是正式的库文件,但它们引用了两个文件。 当尝试链接.pro中的两个库时,我总是做同样的事情:使用-L添加路径,使用-L添加lib的名称。 当我尝试使用这两个库时,会发生错误。 以下是带有动作+结果的列表(实际上我甚至试过了其他一些选项,但没有一个结果与下面显示的两个不同): 首先是lib 1 的.pro LIBS += -L$${COMMON_PATH}/linux-devkit/c6run/lib/c6run_dsp -llibc6run 结果 error: connot find -llibc6run 首先是lib 2 的.pro LIBS += -L$${COMMON_PATH}/linux-devkit/c6run/lib/c6run_dsp -lc6run 结果 compiles fine. when calling a respective method inside main.cpp / int main(): error: undefined […]

C Struct编译错误

为什么以下代码会产生编译时错误? 我似乎无法理解为什么类型不匹配。 typedef char f_string[MAX_CHARS+1] ; /* string for each field */ /* * A parsed CSV line, with the number of fields and upto MAX_FIELDS themselves. */ typedef struct { int nfields ; /* 0 => end of file */ f_string field[MAX_FIELDS] ; /* array of strings for fields */ } csv_line; …. csv_line […]

clock_gettime和CLOCK_MONOTONIC上的编译错误

我在程序中使用clock_gettime。 我试过包括但是没有效果。 我还为我的编译器参数添加了-lrt但仍然得到了相同的错误。 这是开启 CentOS Linux release 7.2.1511 (Core) gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) GNU ld version 2.23.52.0.1-55.el7 20130226 ldd (GNU libc) 2.17 编译器输出: gcc -o main packet.c connect.c transport.c accept.c main.c close.c util.c receive.c send.c congestion.c -Wall -g -std=c99 -lrt util.c: In function ‘millis’: util.c:42:21: error: storage size of ‘t’ isn’t known […]

在’*’标记之前编译“错误:预期’)’时出现多个相同错误

我想用C编程。 当我使用以下参数编译时…. gcc -D_BSD_SOURCE -Wall -ansi -pedantic -g tokenizer.c FileOccur.c WordList.c wordstat.c indexer.c -o indexer 我从终端得到这个作为回应: In file included from ../Headers/WordList.h:11, from FileOccur.c:12: ../Headers/FileOccur.h:18: error: expected ‘)’ before ‘*’ token ../Headers/FileOccur.h:20: error: expected ‘)’ before ‘*’ token In file included from ../Headers/WordList.h:11, from WordList.c:11: ../Headers/FileOccur.h:18: error: expected ‘)’ before ‘*’ token ../Headers/FileOccur.h:20: error: expected ‘)’ […]

在switch语句中使用Obj-C对象时出现奇怪的编译器错误

在switch语句中使用Objective-C对象时出现编译器错误: switch (myConstant) { case 0: UIViewController *myController = [[[UIViewController alloc] init] autorelease]; [self.navigationController pushViewController:myViewController animated:YES]; break; case 1: // stuff break; default: break; } 错误说明: ‘UIViewController’之前的预期表达式 ‘myViewController’未声明(首次在此函数中使用) 我理解第二个错误是第一个错误的直接结果,但我不明白为什么我首先得到’预期表达’错误… 如果我放一个; 在case 0:结尾case 0:行,然后它会编译,但我不应该这样做,不是吗? 这也将无法编译,具有相同的错误: switch (0) { case 0: int a = 0; break; default: break; } 但是,如果我声明int a; 在开关块外面,则a = 0; 编译好。 我以为我理解转换语句 – […]