在Mac OS上无法让Makefile使用g ++而不是clang ++

时间:2018-04-30 10:28:23

标签: c++ macos makefile g++ clang

我正在尝试在Mac OS上编译一个C ++库,它可以在Linux上编译。 (这是通过Makevars文件安装R包来完成的,请参阅:https://cran.r-project.org/doc/manuals/r-release/R-exts.html)在Linux上,当我make时,我看到以下内容:

g++ -std=c++11 -I/usr/share/R/include -DNDEBUG -I../inst/include/  -I"/usr/lib/R/site-library/Rcpp/include"   -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c RcppExports.cpp -o RcppExports.o
g++ -std=c++11 -I/usr/share/R/include -DNDEBUG -I../inst/include/  -I"/usr/lib/R/site-library/Rcpp/include"   -fpic  -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -c packagename.cpp -o packagename.o
g++ -std=c++11 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o packagename.so RcppExports.o packagename.o -llib1 -llib2 -llib3 -L/usr/lib/R/lib -lR
installing to /home/username/R/x86_64-pc-linux-gnu-library/3.2/packagename/libs
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
 * DONE (packagename)

使用Mac OS执行此操作时,我注意到它正在使用clang++,这似乎会导致错误:

clang++  -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.4/Resources/library/Rcpp/include" -I/usr/local/include   -fPIC  -Wall -g -O2  -c RcppExports.cpp -o RcppExports.o
clang++  -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.4/Resources/library/Rcpp/include" -I/usr/local/include   -fPIC  -Wall -g -O2  -c packagename.cpp -o packagename.o
clang++  -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG  -I"/Library/Frameworks/R.framework/Versions/3.4/Resources/library/Rcpp/include" -I/usr/local/include   -fPIC  -Wall -g -O2  -c rcpp_hello_world.cpp -o rcpp_hello_world.o
clang++ -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o packagename.so RcppExports.o packagename.o rcpp_hello_world.o -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
installing to /Library/Frameworks/R.framework/Versions/3.4/Resources/library/packagename/libs
** R
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded
Error: package or namespace load failed for ‘packagename’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/Library/Frameworks/R.framework/Versions/3.4/Resources/library/packagename/libs/packagename.so':

Error: loading failed
Execution halted
ERROR: loading failed

如何在Makefile中指定使用g++而不是clang++

我尝试了CXX=g++,但这似乎不起作用。

0 个答案:

没有答案