C ++ 11的编译器标志-找不到计时文件[关闭]
Posted
技术标签:
【中文标题】C ++ 11的编译器标志-找不到计时文件[关闭]【英文标题】:Compiler Flags For C++11 - chrono file not found [closed] 【发布时间】:2016-11-23 20:46:25 【问题描述】:我正在尝试制作一个从 github 下载的项目。
设置所有依赖项后,它要求我运行“make”。但是,'make' 失败并抱怨找不到 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
,但仍然看到相同的结果。
【问题讨论】:
您在开发环境中使用的是什么编译器(和版本)? 你在传递-std=c++11
吗?当我上次使用 C++11 时,你必须在 GCC 和 Clang 中执行此操作。
github 项目的链接可能会有所帮助。
@SR_ 一些 makefile 细节就足够了。
我必须下载xCode,所以我相信它使用的是gcc。版本是4.2.1。
【参考方案1】:
你应该添加
CXXFLAGS += -std=c++11
到你的makefile(在规则之前的某个地方)。
假设您有足够最新的工具链。
旧的编译器支持标志
-std=c++0x
可能会。
如何更新您的工具链(正如您在 your comment 中要求的那样),取决于您的操作系统环境和软件管理系统。
至少可以选择自己编译最新(稳定)版本的工具链。
【讨论】:
以上是关于C ++ 11的编译器标志-找不到计时文件[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
c 的 SWIG python 绑定找不到标准头文件的 _EXFUN