C上的布尔值引起的错误(我是初学者,所以请尽量简单)

5m1hhzi4  于 2023-04-29  发布在  其他
关注(0)|答案(1)|浏览(118)

我试图使用布尔值,但由于某种原因,它只是给了我一个错误的Clion。

#include <stdio.h>

#define bool int
#define true 1
#define false 0
int main() {
    bool isf = true;
    bool ift = false;
    printf("%d\n", isf);
    printf("%d\n", ift);
}
error code: clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

我试过用

#include <stdbool.h>

但我在C17时它就忽略了
我也试着定义它们,这确实表明它没有错,但当我运行它时,它显示了一个错误。我也使用Mac,我有Xcode。
我也是几天前开始学习C语言的,所以请大家多多包涵。
正确的错误代码:

duplicate symbol '_main' in:
    CMakeFiles/untitled3.dir/main.c.o
    CMakeFiles/untitled3.dir/Second_class.c.o
ld: 1 duplicate symbol for architecture arm64.
4c8rllxm

4c8rllxm1#

如错误消息所示,您正在链接两个文件CMakeFiles/untitled3.dir/main.c.oCMakeFiles/untitled3.dir/Second_class.c.o,这两个文件都定义了符号_main
1.您需要不将两个文件链接到同一个可执行文件中,或者
1.将其中一个符号更改为其他名称
@RetiredNinja说你有两个main()函数。当我试图复制它时,我在Linux上得到了一个不同的错误:

$ clang 1.o 2.o -o 3|& grep main
/usr/bin/ld: 2.o: in function `main':
(.text+0xf0): multiple definition of `main'; 1.o:(.text+0xf0): first defined here

相关问题