将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。快速版本:
/usr/lib/libprofiler.*
?这是所有开发常见问题之母:您需要包libfoo
来针对foo运行代码,包libfoo-dev
来针对foo进行编译/usr/lib/libprofiler.*
?这是所有开发常见问题之母:您需要包libfoo
来针对foo运行代码,包libfoo-dev
来针对foo进行编译嗨,德克,谢谢!我还有一些关于使用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`())没有显示任何有意义的内容。错了吗?