我在终端上使用了gcc命令来编译C程序但突然间,在我的Mac操作系统更新后(到macOS 10.14 Mojave和XCode 10.0),我开始收到消息:
test.c:8:10: fatal error: stdio.h: No such file or directory
#include <stdio.h>
^~~~~~~~~
compilation terminated.
Run Code Online (Sandbox Code Playgroud)
我已经安装了gcc,因为我可以找到它/usr/local/bin
并且那里确实有一个gcc.我尝试在我的其他iMac上运行相同的文件,它没有任何问题.
我试过运行xcode-select --install
它已经安装好了,因此它没有解决我现在遇到的问题.我猜测路径搞砸了,因为gcc
在我开始复制并粘贴其他资源中的一些命令来解决此问题后,它似乎无法找到.
希望对此有所帮助.
我对Rcpp有一些奇怪的麻烦 - 它使用了不可预测的C++编译器.这个问题有点类似于这个问题.
我在OSX上,我有2个编译器 - 默认clang
和openmp clang-omp
支持.我也有以下~/.R/Makevars
文件(我设置clang-omp
为默认编译器):
CC = clang-omp
CXX = clang-omp ++
CFLAGS + = -O3 -Wall -pipe -pedantic -std = gnu99
CXXFLAGS + = -O3 -Wall -pipe -Wno-unused -pedantic -fopenmp
问题是,我正在开发的软件包编译而clang++
不是clang-omp++
.我也尝试过(作为实验来解决问题)更改包src/Makevars
和设置CXX=clang-omp++
以及修改后的$R_HOME/etc/Makeconf
CXX
条目CXX = clang-omp++
.没有运气 - 它仍然可以编译clang++
.不知道为什么会这样.
这里也是小的可重现的(来自控制台R和来自Rstudio)的例子(不知道它是否与上面的问题有关).假设2个非常相似的cpp函数:
1.
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericVector timesTwo(NumericVector x) {
return x * 2;
} …
Run Code Online (Sandbox Code Playgroud)