使用gcc -std=c17等参数编译C程序遇链接错误求助
解决gcc链接错误:invalid version 2 (max 0) & error adding symbols: bad value
错误原因
你使用的编译命令gcc -std=c17 -Wall -Wextra -pedantic file file.c存在问题——多余的file被gcc当作了要链接的输入文件,但file是系统自带的可执行工具,并非合法的C源文件或目标文件,链接器ld无法识别它的格式,因此抛出版本错误和符号添加失败的报错。
解决方案
修改编译命令,去掉多余的file;如果需要指定输出可执行文件名为file,加上-o参数:
gcc -std=c17 -Wall -Wextra -pedantic file.c -o file
若不需要指定输出名,直接编译生成默认的a.out,使用这条命令即可:
gcc -std=c17 -Wall -Wextra -pedantic file.c
代码验证
你的C代码本身没有语法或逻辑问题:通过fork()创建两个子进程,分别循环输出"A"、"C",父进程循环输出"B",配合fflush(stdout)确保字符及时输出,代码符合C17标准,编译命令修正后即可正常运行。
内容的提问来源于stack exchange,提问作者Freddy-03
相关产品推荐
相关产品推荐

