c - 使用 GNU GCC 编译器编译 C 项目时出现 "undefined reference to "错误

标签 c r gcc

我希望有人能提供帮助。我是 C 的新手,我一直在试验 R 项目中的一些代码。我创建的项目由一个 main.c 文件和几个头文件组成。 main.c 文件如下所示:

#include "Rinternals.h"
int main(int argc, char** argv) {     
}
SEXP Cdqrls(SEXP x, SEXP y, SEXP tol, SEXP chk)
{   
SEXP ans;
SEXP qr, coefficients, residuals, effects, pivot, qraux;
int n, ny = 0, p, rank, nprotect = 4, pivoted = 0;
double rtol = asReal(tol), *work;   
}

Rinternals.h 文件是来自 R 项目源的文件:https://svn.r-project.org/R/trunk/src/include/Rinternals.h

我已将此头文件包含在与 main.c 文件相同的文件夹中,并且我还将 Rinternals.h #includes 语句中的所有头文件包含在此文件夹中。当我尝试编译它时,出现以下错误:

||=== Build: Debug in MyNewProject (compiler: GNU GCC Compiler) ===|
obj\Debug\main.o||In function `Cdqrls':|
main.c|30|undefined reference to `Rf_asReal'|

我已经尝试了很多东西,但似乎无法找到让这段代码编译的方法。我目前在 Code::Blocks 工作并使用 GNU GCC 编译器进行编译。如有任何帮助,我们将不胜感激。

最佳答案

您需要将它与 R 库链接(也可以使用 -I 指定包含库):

cc -O2 code.c -o code -I/usr/share/R/include -L/usr/lib/R/lib -lR

关于c - 使用 GNU GCC 编译器编译 C 项目时出现 "undefined reference to "错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35069781/

相关文章:

r - 在 R 中的数据帧上使用 psych reverse.code()

c - 如何使用命令行提供参数

c - C中常量的正则表达式

c++ - GDB Dis-Flavor 设置为 Intel,但显示 AT&T 风格

c++ - GCC 4.9 中的模板实例化错误,在 GCC 4.8 中工作正常

c - SDL 仅与 main 一起使用,并忽略程序中的其他 .c 和 .h 文件

c - C字符串文字作为参数等于在AVR-GCC中为-1?

c++ - 保持cgi应用程序始终在c++中运行

r - {reactlog} 生成的 r Shiny react 日志图形中的 "Theme Counter"是什么?

r - 在 R 中绘制 lme 模型(带有多项式)的预测值