Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ &引用;链接器输入文件;尝试编译C+;时出现未使用的错误+;使用R';s g++;编译程序_C++_R_Opencv_Compiler Errors_Rcpp - Fatal编程技术网

C++ &引用;链接器输入文件;尝试编译C+;时出现未使用的错误+;使用R';s g++;编译程序

C++ &引用;链接器输入文件;尝试编译C+;时出现未使用的错误+;使用R';s g++;编译程序,c++,r,opencv,compiler-errors,rcpp,C++,R,Opencv,Compiler Errors,Rcpp,我试图在R包中使用OpenCV中的一些代码,使用Rcpp构建包。当我在我的机器上编译c代码时,它工作得很好 例如,我在本地使用以下语法编译facedetect.cpp代码: g++ `pkg-config --cflags opencv` facedetect.cpp -o facedetect `pkg-config --libs opencv` 但是,当我尝试使用以下命令将其包含在包中时: R CMD SHLIB facedetect.cpp -o facedetect 在我的mak

我试图在R包中使用OpenCV中的一些代码,使用Rcpp构建包。当我在我的机器上编译c代码时,它工作得很好

例如,我在本地使用以下语法编译facedetect.cpp代码:

g++ `pkg-config --cflags opencv` facedetect.cpp -o facedetect `pkg-config --libs opencv` 
但是,当我尝试使用以下命令将其包含在包中时:

R CMD SHLIB  facedetect.cpp -o facedetect
在我的makevars文件中定义了以下内容:

PKG_CPPFLAGS=  `$(R_HOME)/bin/Rscript -e 'Rcpp:::CxxFlags()'` 
PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"`  
PKG_CXXFLAGS= `pkg-config --cflags opencv` `pkg-config --libs opencv`
R执行以下操作:

g++ -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include -I/Library/Frameworks/R.framework/Resources/include/x86_64 `pkg-config --cflags opencv` `pkg-config --libs opencv`  `/Library/Frameworks/R.framework/Resources/bin/Rscript -e 'Rcpp:::CxxFlags()'`  -I/usr/local/include    -fPIC  -g -O2 -c facedetect.cpp -o facedetect.o
这会给我以下错误消息:

i686-apple-darwin10-g++-4.2.1: -lopencv_core: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lopencv_imgproc: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lopencv_highgui: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lopencv_ml: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lopencv_video: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lopencv_features2d: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lopencv_calib3d: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lopencv_objdetect: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lopencv_contrib: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lopencv_legacy: linker input file unused because linking not done
i686-apple-darwin10-g++-4.2.1: -lopencv_flann: linker input file unused because linking not done
g++ -arch x86_64 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup     -single_module -multiply_defined suppress -L/usr/local/lib -o facedetect facedetect.o -I/opt/local/include/opencv -I/opt/local/include -L/opt/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
我不理解这些错误信息,因为我对C++没有足够的经验。有没有人知道如何让R编译我的本地G++编译器的C++代码呢?我不确定“-c”标志是否是问题所在。。。不幸的是,我无法通过谷歌或编写R扩展手册找到答案。谢谢

有几点:

  • 这些是来自编译步骤的警告,告诉您编译步骤不需要库(链接时会出现这些库)

  • 您正在尝试融合两个中等复杂的系统

  • 我建议退一步——您知道如何编译示例文件,现在使用Makevars设置对更简单的相关R包执行同样的操作。有几个包使用Rcpp和GSL作为一个公共外部库。你可以试着看看它们是如何工作的,并且它们可以理解模式

  • 一旦你有了这个模式,将它应用到OpenCV中

对不起,我看不到明显的快捷方式。

有几点:

  • 这些是来自编译步骤的警告,告诉您编译步骤不需要库(链接时会出现这些库)

  • 您正在尝试融合两个中等复杂的系统

  • 我建议退一步——您知道如何编译示例文件,现在使用Makevars设置对更简单的相关R包执行同样的操作。有几个包使用Rcpp和GSL作为一个公共外部库。你可以试着看看它们是如何工作的,并且它们可以理解模式

  • 一旦你有了这个模式,将它应用到OpenCV中

对不起,我看不到明显的捷径