src/例如src/libfoo,当我安装软件包时,子文件夹中的C或C ++代码不会被编译。
当我搜索了其他问题,我发现这是提到Makevars。我搜索了Matrix包Makevars。我认为我应该补充:
PKG_LIBS: -Llibfoo
Run Code Online (Sandbox Code Playgroud)
但这没有用。
我还发现在编写R Extensions上。我在我的Makevars中添加了以下内容,但它也不起作用。
SOURCES = $(libfoo/*.c)
OBJECTS = $(SOURCES:.c=.o)
Run Code Online (Sandbox Code Playgroud)
我应该如何调整Makevars文件?
最终通过设置以下方式工作:
SOURCES = $(wildcard libfoo/*.c)
OBJECTS = foo.o RcppExports.o $(SOURCES:.c=.o)
Run Code Online (Sandbox Code Playgroud)
对我而言,真正神秘的部分是wildcard定义SOURCES。