我正在寻找一个C解释器,以便在制作简单的C实用程序时使用,以避免所有时间都在编译。我按照建议的here安装了TCC,但是我得到了警告和错误。如何正确运行TCC?
$ tcc -run hello.c
.../usr/include/sys/cdefs.h:81: warning: #warning "Unsupported compiler detected"
#if !defined(__GNUC__) || __GNUC__ < 4
#warning "Unsupported compiler detected"
#endif设置__GNUC__会导致稍后出现错误:
tcc -D__GNUC__=4 -run hello.c
.../usr/include/i386/_types.h:98: error: ';' expected (got "__darwin_va_list")
#if (__GNUC__ > 2)
typedef __builtin_va_list __darwin_va_list; /* va_list */
#else
typedef void * __darwin_va_list; /* va_list */
#endif我的环境:
~$ gcc --version
Apple LLVM version 9.0.0 (clang-900.0.39.2)
Target: x86_64-apple-darwin16.7.0如果TCC不适合macOS,请推荐一个运行良好的C解释器。
发布于 2018-03-27 17:35:20
可以肯定的是,可以工作的是欧洲核子研究组织的Cling或其他基于LLVM/Clang的操作系统,因为这就是苹果在macOS中使用的。
发布于 2018-03-27 17:36:49
紧靠在您的第一条消息抱怨行上方的区块注释是
/* This SDK is designed to work with clang and specific versions of
* gcc >= 4.0 with Apple's patch sets */
#if !defined(__GNUC__) || __GNUC__ < 4
#warning "Unsupported compiler detected"
#endif这一点很明显--你需要的是gcc或者当当。幸运的是,这两个编译器都很容易安装-使用https://www.macports.org。
我不会为C解释器而烦恼--它不是一种解释型语言。
发布于 2020-10-30 10:39:33
首先,tcc不是一个“解释器”,它是一个非常快的编译器,可以用来编译和运行你的C代码,就像它是脚本一样。
其次,“检测到不支持的编译器”警告只是一个警告。我一直收到这个警告,我的代码仍然编译和运行没有问题。如果警告让您感到困扰,您可以简单地运行带有-w选项的tcc来抑制警告(只有当您重新运行一个已知没有问题的文件时,可能才是明智的)。
例如,如果您正在运行C代码,就好像它是一个使用tcc shebang行的脚本一样,那么您可以将其更改为
#!/usr/local/bin/tcc -w -run在macOS上运行tcc时,可能会出现一些其他问题。主要的一个是缺少包含文件。在macOS上,可能不会将包含文件安装到/usr/include/。有关修复,请参阅此question。一旦Xcode正确地安装了头文件,我仍然需要更新我的环境变量来让tcc找到它们。
export C_INCLUDE_PATH="/usr/include:$C_INCLUDE_PATH"通过运行tcc -vv,您可以看到tcc在哪里查找头文件。
https://stackoverflow.com/questions/49509186
复制相似问题