C 11 -Chrono文件的编译器标志找不到

Compiler Flags For C++11 - chrono file not found

本文关键字:编译器 标志 找不到 文件 -Chrono      更新时间:2023-10-16

我正在尝试从Github下载一个项目。设置所有依赖关系后,它要求我运行"制造"。但是,"使"失败并抱怨找不到chrono文件。
我了解这是一个相关的问题,我必须启用C 11支持。更具体地说,传递编译器标志-stdlib=libc++
但是,将此标志添加到我的makefile中仍然会产生相同的错误。谁能解释需要设置此标志的位置/如何设置?

这是makefile的内容:

TARGETS =  
    ptools  
    feature  
    libsvm  
    wrapper 
all: 
    -for dir in $(TARGETS); do  
    cd $${dir}; $(MAKE); cd ..;  
    done cd libsvm; $(MAKE) lib; cd ..; 
clean: 
    -for dir in $(TARGETS); do  
    cd $${dir}; $(MAKE) clean; cd ..;  
    done 
test: 
    @echo hello; 
.PHONY: clean $(TARGETS)

update1:运行brew install gcc后,它开始下载依赖项。但是,当它下载依赖项之一MPFR时,它总是会破裂:错误:无法使用任何可用编译器构建MPFR。安装GNU的GCC。

update2:我设法更新了GCC及其返回的版本为6.2.0。但是,我仍然看到相同的错误。我在makefile中添加了 CXXFLAGS += -stdlib=libc++ -std=gnu++11,胸围仍然看到相同的结果。

您应该添加

CXXFLAGS += -std=c++11

到您的makefile(规则之前的某个地方)。


认为您有足够的最新工具链。

老年编译器支持标志

-std=c++0x

可能是。


如何更新工具链(如您在评论中要求),取决于您的OS环境和软件管理系统。

至少一个选项是自己编译工具链的最新(稳定)版本。