vbcc 编译器抱怨:找不到文件 'stdio.h',但它在 'include' 目录中

vbcc compiler complains: file 'stdio.h' not found, but it is in the 'include' directory

目前这不是交叉编译设置。只是一个本地 C 开发环境。这是代码:

#include <stdio.h>

int main(void){
 printf("Hello World\n");
}

我用命令编译:vbbcm68k test.c

输出:

>#include <stdio.h>
error 248 in line 1 of "test.c": file 'stdio.h' not found

我已经安装了 vbcc_bin_amigaos68k 和 vbcc_target_m68k-amigaos

我的用户启动看起来像这样:

;BEGIN vbcc
assign >NIL: vbcc: Hard Disk:vbcc
assign >NIL: C: vbcc:bin vbcc:include ADD
setenv VBCC vbcc:
;END vbcc

我的安装根目录是这样的(头文件存在于 include/ 中):

Directories
bin
config
doc
include
lib

Files
test.asm
test.c
vbcc_inst.log
vbcc_version

如果我将 .h 文件复制到根目录,它可以工作,但显然我希望它们在 vbcc:include 中被检测到。有人可以帮忙吗?

从头开始安装

首先,您的安装与 distributed files. I suggest that you just wipe everything and then download and install (using the included installer scripts) in this order: vbcc_bin_amigaos68k.lha vbcc_target_m68k-amigaos.lha 中的布局不匹配。

或尝试修复它

vcvbccm68k 都不会自动在 vbcc:include 中查找包含,你必须告诉他们在哪里使用 -I 标志查看。如果您使用 vc 命令而不是“原始”命令 vbccm68k,它可以从脚本中获取包含文件。

您平台的默认脚本在 ENV:vc.configVBCC:vc.config$VBCC/config/vc.config 中搜索(来自您的 VBCC 环境变量) .在你的情况下,它应该从环境中获取,如果你查看 config 子目录,你应该有那个文件。

如果您检查 vc.config,您会发现它向命令附加了 -Ivincludeos3:。默认安装程序设置了一个分配给(特定于目标的)包含文件,它应该看起来像这样:

assign >NIL: vincludeos3: vbcc:targets/m68k-amigaos/include

在你的情况下我猜它会是:

assign >NIL: vincludeos3: vbcc:include

此外,这一行有点奇怪:

assign >NIL: C: vbcc:bin vbcc:include ADD

你应该离开 vbcc:include,包含目录中没有二进制文件。

调试

对于工具找不到其文件的调试问题,SnoopDOS 是无价的。