【问题标题】:What is setting my environment variables wrong?什么是我的环境变量设置错误?
【发布时间】:2016-11-09 07:33:51
【问题描述】:

当我尝试install.packages('readr') 时,我收到来自

的错误
clang++ -I/usr/local/lib/R/include -DNDEBUG -I/usr/local/lib/R/include
        -I/usr/local/include -I"/usr/local/lib/R/site-library/Rcpp/include"
        -I"/usr/local/lib/R/site-library/BH/include"
        -fpic  -g -O2  -O3 -fstack-protector --param=ssp-buffer-size=4
        -Wformat -Wformat-security -Werror=format-security 
        -D_FORTIFY_SOURCE=2 -g    -std=c++11
        -c Collector.cpp -o Collector.o

我正在检查 ~/.R/Makevars/etc/R/Makeconf 是否可以设置此 clang++ -I.... 命令,但两者都不包含该语言。

echo $CXX
echo $CC

都是空的,在开始 R 之前将它们设置为其他内容没有帮助。启动 R --no-environ 也不会更改错误消息。


那么这些环境变量可能在哪里设置,我该如何更改或禁用它们,以及我如何确定下一次这个“来自某个地方的全局变量”错误来自哪里?

提前致谢。

【问题讨论】:

  • 您可能希望包含您遇到的错误。可能是来自sessionInfo 的一些输出(例如 R 版本、平台、操作系统)。
  • R 看到的变量请参见R CMD config,例如,R 安装期间定义的变量请参见R CMD config CXXR -e "R.home('Makevars')"
  • 你安装了 boost 吗?来自 /home/chris/R/x86_64-pc-linux-gnu-library/3.3/BH/include/boost/,在观看构建时,所有这些都是对 boost 的调用。
  • @steveb R 版本 3.3.1,32 位 i686,Ubuntu 精确 12.04.5
  • @Chris 是的,我在不同的地方有几个版本。我在想如果我用-I/opt/boost_1_61_0/boost 替换-I"/usr/local/lib/R/site-library-BH/include" 那么这可能会解决我的问题。

标签: r ubuntu boost compilation include-path


【解决方案1】:

我可能需要to addexport LIBRARY_PATH=/opt/boost_1_61_0/boost/to my~/.bashrc`。


这不能回答我的问题(关于如何清理clang 调用),但是将~/.R/Makevars 中的CXX 值从clang++ 更改为g++ 确实解决了我无法解决的直接问题安装readr


这是clang下的构建错误:

In file included from Collector.cpp:4:
In file included from ./Collector.h:8:
In file included from ./Token.h:6:
In file included from ./Source.h:5:
In file included from ./boost.h:13:
In file included from /usr/local/lib/R/site-library/BH/include/boost/spirit/include/qi.hpp:16:
In file included from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi.hpp:14:
In file included from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/action.hpp:14:
In file included from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/action/action.hpp:14:
In file included from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/meta_compiler.hpp:14:
In file included from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/support/meta_compiler.hpp:19:
In file included from /usr/local/lib/R/site-library/BH/include/boost/proto/proto.hpp:12:
In file included from /usr/local/lib/R/site-library/BH/include/boost/proto/core.hpp:21:
In file included from /usr/local/lib/R/site-library/BH/include/boost/proto/fusion.hpp:22:
In file included from /usr/local/lib/R/site-library/BH/include/boost/fusion/include/intrinsic.hpp:11:
In file included from /usr/local/lib/R/site-library/BH/include/boost/fusion/sequence/intrinsic.hpp:23:
In file included from /usr/local/lib/R/site-library/BH/include/boost/fusion/sequence/intrinsic/swap.hpp:15:
In file included from /usr/local/lib/R/site-library/BH/include/boost/fusion/view/zip_view.hpp:12:
In file included from /usr/local/lib/R/site-library/BH/include/boost/fusion/view/zip_view/zip_view.hpp:16:
In file included from /usr/local/lib/R/site-library/BH/include/boost/fusion/view/zip_view/detail/begin_impl.hpp:14:
In file included from /usr/local/lib/R/site-library/BH/include/boost/fusion/algorithm/transformation/transform.hpp:11:
In file included from /usr/local/lib/R/site-library/BH/include/boost/fusion/view/transform_view/transform_view.hpp:22:
In file included from /usr/local/lib/R/site-library/BH/include/boost/fusion/container/vector/vector10.hpp:25:
/usr/local/lib/R/site-library/BH/include/boost/fusion/container/vector/vector.hpp:261:61: error: 
      invalid use of 'this' outside of a nonstatic member function
            auto at_impl(J) -> decltype(at_detail<J::value>(this))
                                                            ^
/usr/local/lib/R/site-library/BH/include/boost/fusion/container/vector/vector.hpp:262:13: error: 
      type name requires a specifier or qualifier
            {
            ^
/usr/local/lib/R/site-library/BH/include/boost/fusion/container/vector/vector.hpp:262:13: error: 
      C++ requires a type specifier for all declarations
            {
            ^
/usr/local/lib/R/site-library/BH/include/boost/fusion/container/vector/vector.hpp:261:13: error: 
      'auto' return without trailing return type
            auto at_impl(J) -> decltype(at_detail<J::value>(this))
            ^
/usr/local/lib/R/site-library/BH/include/boost/fusion/container/vector/vector.hpp:268:67: error: 
      invalid use of 'this' outside of a nonstatic member function
            auto at_impl(J) const -> decltype(at_detail<J::value>(this))
                                                                  ^
/usr/local/lib/R/site-library/BH/include/boost/fusion/container/vector/vector.hpp:269:13: error: 
      type name requires a specifier or qualifier
            {
            ^
/usr/local/lib/R/site-library/BH/include/boost/fusion/container/vector/vector.hpp:269:13: error: 
      C++ requires a type specifier for all declarations
            {
            ^
/usr/local/lib/R/site-library/BH/include/boost/fusion/container/vector/vector.hpp:268:13: error: 
      'auto' return without trailing return type
            auto at_impl(J) const -> decltype(at_detail<J::value>(this))
            ^
8 errors generated.
make: *** [Collector.o] Error 1
ERROR: compilation failed for package ‘readr’

如果我使用g++ 而不是clang++ 进行编译,错误就会变成警告:

In file included from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/is_dereferenceable.hpp:12:0,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/resolve.hpp:26,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/push.hpp:24,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/streambuf/indirect_streambuf.hpp:31,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/stream_buffer.hpp:22,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/stream.hpp:21,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/stream/detail/iterator_source.hpp:14,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/stream/stream.hpp:16,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/stream.hpp:15,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi.hpp:30,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/include/qi.hpp:16,
                 from boost.h:14,
                 from Source.h:5,
                 from Token.h:6,
                 from Collector.h:8,
                 from Collector.cpp:4:
/usr/local/lib/R/site-library/BH/include/boost/type_traits/detail/bool_trait_def.hpp:18:79: note: #pragma message: NOTE: Use of this header (bool_trait_def.hpp) is deprecated
 # pragma message("NOTE: Use of this header (bool_trait_def.hpp) is deprecated")
                                                                               ^
In file included from /usr/local/lib/R/site-library/BH/include/boost/type_traits/detail/bool_trait_def.hpp:21:0,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/is_dereferenceable.hpp:12,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/resolve.hpp:26,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/push.hpp:24,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/streambuf/indirect_streambuf.hpp:31,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/stream_buffer.hpp:22,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/stream.hpp:21,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/stream/detail/iterator_source.hpp:14,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/stream/stream.hpp:16,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/stream.hpp:15,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi.hpp:30,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/include/qi.hpp:16,
                 from boost.h:14,
                 from Source.h:5,
                 from Token.h:6,
                 from Collector.h:8,
                 from Collector.cpp:4:
/usr/local/lib/R/site-library/BH/include/boost/type_traits/detail/template_arity_spec.hpp:13:84: note: #pragma message: NOTE: Use of this header (template_arity_spec.hpp) is deprecated
 gma message("NOTE: Use of this header (template_arity_spec.hpp) is deprecated")
                                                                               ^
In file included from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/is_dereferenceable.hpp:13:0,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/resolve.hpp:26,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/push.hpp:24,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/detail/streambuf/indirect_streambuf.hpp:31,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/stream_buffer.hpp:22,
                 from /usr/local/lib/R/site-library/BH/include/boost/iostreams/stream.hpp:21,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/stream/detail/iterator_source.hpp:14,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/stream/stream.hpp:16,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi/stream.hpp:15,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/home/qi.hpp:30,
                 from /usr/local/lib/R/site-library/BH/include/boost/spirit/include/qi.hpp:16,
                 from boost.h:14,
                 from Source.h:5,
                 from Token.h:6,
                 from Collector.h:8,
                 from Collector.cpp:4:

(错误太长,粘贴在http://ix.io/11F0

所以spiritfusion 都不被两个编译器喜欢(使用我选择的标志,我仍然无法弄清楚如何清理)。

【讨论】:

    猜你喜欢
    • 2014-12-03
    • 2020-11-18
    • 2012-01-18
    • 2015-11-23
    • 1970-01-01
    • 2013-05-16
    • 2011-05-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多