将Google perftools指定为g++;用于使用C++;在R < >我安装了谷歌PravoSots(谷歌PravoSoo1.7 1Untutu1),并在编译C++代码时在R中添加了PKGLILBS, library(RcppArmadillo) library(Rcpp) Sys.setenv("PKG_CXXFLAGS"="-fopenmp") Sys.setenv("PKG_LIBS"="-fopenmp -lprofiler") sourceCpp('my.cpp')

将Google perftools指定为g++;用于使用C++;在R < >我安装了谷歌PravoSots(谷歌PravoSoo1.7 1Untutu1),并在编译C++代码时在R中添加了PKGLILBS, library(RcppArmadillo) library(Rcpp) Sys.setenv("PKG_CXXFLAGS"="-fopenmp") Sys.setenv("PKG_LIBS"="-fopenmp -lprofiler") sourceCpp('my.cpp'),c++,r,profiling,rcpp,C++,R,Profiling,Rcpp,输出为: /usr/bin/ld: cannot find -lprofiler collect2: ld returned 1 exit status make: *** [sourceCpp_17496.so] Error 1 g++ -I/usr/share/R/include -DNDEBUG -I"/usr/local/lib/R/site-library/Rcpp/include" -I"/usr/local/lib/R/site-library/RcppArmadillo/i

输出为:

/usr/bin/ld: cannot find -lprofiler
collect2: ld returned 1 exit status
make: *** [sourceCpp_17496.so] Error 1
g++ -I/usr/share/R/include -DNDEBUG    -I"/usr/local/lib/R/site-library/Rcpp/include" -I"/usr/local/lib/R/site-library/RcppArmadillo/include"   -fopenmp -fpic  -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Werror=format-security -D_FORTIFY_SOURCE=2 -g  -c my.cpp -o my.o g++ -shared -Wl,-Bsymbolic-functions -Wl,-z,relro -o sourceCpp_17496.so my.o -llapack -lblas -lgfortran -lm -lquadmath -fopenmp -fopenmp -lprofiler -L/usr/lib/R/lib -lR 
Error in sourceCpp("my.cpp") : 
  Error 1 occurred building shared library.

WARNING: The tools required to build C++ code for R were not found.

Please install GNU development tools including a C++ compiler.
即使我在bash中运行g++,也会得到相同的错误

$ g++ -shared -Wl,-Bsymbolic-functions -Wl,-z,relro -o sourceCpp_17496.so my.o -llapack -lblas -lgfortran -lm -lquadmath -fopenmp -fopenmp -lprofiler -L/usr/lib/R/lib -lR 
/usr/bin/ld: cannot find -lprofiler
collect2: ld returned 1 exit status
我想知道为什么lprofiler不指定googleperfotools?我怎样才能解决这个问题?谢谢

我的g++是g++(Ubuntu/Linaro 4.6.3-1ubuntu5)4.6.3。

快速版本:

  • 您是否安装了libgoogle perftools dev软件包?Ie是否有共享库和静态库
    /usr/lib/libprofiler.*
    ?这是所有开发常见问题之母:您需要包
    libfoo
    来针对foo运行代码,包
    libfoo-dev
    来针对foo进行编译

  • 我在几年前的“带R的HPC”幻灯片中有一些老的工作示例;这些都应该按原样工作

  • 快速的:

  • 您是否安装了libgoogle perftools dev软件包?Ie是否有共享库和静态库
    /usr/lib/libprofiler.*
    ?这是所有开发常见问题之母:您需要包
    libfoo
    来针对foo运行代码,包
    libfoo-dev
    来针对foo进行编译

  • 我在几年前的“带R的HPC”幻灯片中有一些老的工作示例;这些都应该按原样工作


  • 嗨,德克,谢谢!我还有一些关于使用GooglePerfTools来使用Rcpp评测我的R程序的问题。我现在不能发布新问题,因为每24小时只能发布6条帖子。我能在这里问你吗?这是我做的。(1) 首先,在我的R脚本“my.R”中,我有
    Sys.setenv(“PKG_LIBS”=“-fopenmp-lprofiler”)
    (用于
    sourceCpp()
    使用profiler选项编译
    my.cpp
    ),然后是
    sourceCpp(my.cpp)
    ,然后是调用
    my.cpp
    中定义的一些函数。(2) 其次,在shell中,我通过
    CPUPROFILE=“myprof.log”R-f my.R
    运行R脚本,它生成了一个日志文件
    myprof.log
    。(3) 最后,我用“google pprof--text R myprof.log | less
    ”检查了日志文件,但是
    myprof.log`())没有显示任何有意义的内容。错了?嗨,德克,谢谢!我还有一些关于使用GooglePerfTools来使用Rcpp评测我的R程序的问题。我现在不能发布新问题,因为每24小时只能发布6条帖子。我能在这里问你吗?这是我做的。(1) 首先,在我的R脚本“my.R”中,我有
    Sys.setenv(“PKG_LIBS”=“-fopenmp-lprofiler”)
    (用于
    sourceCpp()
    使用profiler选项编译
    my.cpp
    ),然后是
    sourceCpp(my.cpp)
    ,然后是调用
    my.cpp
    中定义的一些函数。(2) 其次,在shell中,我通过
    CPUPROFILE=“myprof.log”R-f my.R
    运行R脚本,它生成了一个日志文件
    myprof.log
    。(3) 最后,我用“google pprof--text R myprof.log | less
    ”检查了日志文件,但是
    myprof.log`())没有显示任何有意义的内容。错了吗?