无法使用boost 1.56.0构建RStudio IDE

时间:2014-09-16 10:28:21

标签: r boost build compiler-errors rstudio

在将'boost'软件包更新到1.56.0之后,我从源代码构建RStudio IDE时遇到了一些问题。

我使用了以下PKGBUILD for Arch Linux包管理器:http://pastebin.com/r1mgj1h2

构建包含错误的日志:http://pastebin.com/FjMdxEKA

错误讯息:

** testing if installed package can be loaded
Linking C static library librstudio-core-synctex.a
/build/rstudio-desktop-git/src/rstudio/src/cpp/core/Assert.cpp: In function 'void boost::assertion_failed(const char*, const char*, const char*, long int)':
/build/rstudio-desktop-git/src/rstudio/src/cpp/core/Assert.cpp:40:10: error: 'boost::core::log' has not been declared
core::log::logWarningMessage(msg, location);
^
/build/rstudio-desktop-git/src/rstudio/src/cpp/core/Assert.cpp: In function 'void boost::assertion_failed_msg(const char*, const char*, const char*, const char*, long int)':
/build/rstudio-desktop-git/src/rstudio/src/cpp/core/Assert.cpp:64:10: error: 'boost::core::log' has not been declared
core::log::logWarningMessage(message, location);
^
src/cpp/core/CMakeFiles/rstudio-core.dir/build.make:54: recipe for target 'src/cpp/core/CMakeFiles/rstudio-core.dir/Assert.cpp.o' failed
make[2]: *** [src/cpp/core/CMakeFiles/rstudio-core.dir/Assert.cpp.o] Error 1
* DONE (manipulate)
CMakeFiles/Makefile2:178: recipe for target 'src/cpp/core/CMakeFiles/rstudio-core.dir/all' failed
make[1]: *** [src/cpp/core/CMakeFiles/rstudio-core.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

注意:我在this文章中描述的干净的chroot中构建了RStudio。

我认为可能的解决方案之一是将boost包安装到带有this脚本的单独实例中。 但是看起来很复杂。

确定有很多更简单的解决方案。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

# specify that namespace core is in the global namespace and not
# relative to some other namespace (like its ::core not ::boost::core)
find . \( -name *.cpp -or -name *.hpp \) -exec sed \
        -e 's@<core::@< ::core::@g' -e 's@\([^:]\)core::@\1::core::@g' -i {} \;