c++ - 在 Ubuntu 上使用 Eclipse C++ 时的 makefile 问题

标签 c++ linux eclipse makefile gsl

尝试在 Eclipse 的 C++ IDE 中构建程序时,出现“make: ***[diffusionWeightsTest] Error 1”和“目标‘diffusionWeightsTest’的配方失败”错误。如果我打开 makefile,则以下代码块与错误有关(具体来说,错误在 @echo 'Building target: $@' 上):

diffusionWeightsTest: $(OBJS) $(USER_OBJS)
    @echo 'Building target: $@'
    @echo 'Invoking: GCC C++ Linker'
    g++  -o "diffusionWeightsTest" $(OBJS) $(USER_OBJS) $(LIBS)
    @echo 'Finished building target: $@'
    @echo ' '

如果我创建一个新的 HelloWorld C++ 项目并构建它,它似乎工作正常。除了链接 GSL 库之外,除了复制我的 .C 和 .H 代码文件(从我最初编写它们的 Windows 机器)外,我没有做任何其他事情。

我想在虚拟 Ubuntu Linux 机器上使用 Eclipse 的 IDE 和 GSL 库进行 C++ 开发。我安装了 Oracle 的 JDK、GSL 库(遵循安装指南)和 Eclipse 的最新 C++ IDE。在我的程序属性中,我链接了 gsl 和 gslcblas 库(右键单击项目名称 >> 属性 >> C/C++ 构建 >> 设置 >> GCC C++ 链接器 >> 库 >> 添加 gslcblas 和 gsl 到库(-l ) ) 这样 Eclipse 似乎可以识别代码中的那些函数。

知道是什么导致了这个 makefile 错误吗?

最佳答案

实际上,只是弄清楚了这一点。显然,在将 GSL 库链接到您的项目时有一个特定的顺序。您必须先列出“gsl”,然后再列出“gslcblas”。

所以,澄清一下,在你安装了 GSL 库之后(从他们的网站下载包,解压它,打开 GSL 文件夹内的终端,./configure,make,sudo make install),你必须链接将 gsl 和 gslcblas 库添加到您的 Eclipse 项目中。在 Eclipse 的 Project Explorer 中右键单击项目名称 >> Properties >> C/C++ Build >> Settings >> GCC C++ Linker >> Libraries >> 将 gsl 和 gslcblas 添加到 Libraries (-l)。

但是你必须先放gsl,再放gslcblas。顺序很重要。否则你会得到上面的错误。

关于c++ - 在 Ubuntu 上使用 Eclipse C++ 时的 makefile 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43283431/

相关文章:

linux - Sphinx 索引器增量 --rotate

linux - awk 仅当行以结果开头时才匹配

linux - 如何在远程主机上运行 bash function()?在Ubuntu中

c++ - 指向运行时固定大小数组的指针是否合法?

c++ - Adafruit SHT31-D 和 Raspberry Pi2 -- 无法从传感器读取数据

c++ - 将方法作为函数指针传递

c++ - EDSDK 消息循环在 Windows 8.1 下不工作

java - 无法从 FacebookSDK 解析目标 'android-9'

java - 我正在尝试在我的游戏中使用 Unity Ads,但不起作用

java - 为什么无论我将组件存储在何处,我的 Java 代码都无法在 Eclipse 中运行?