gsl 未定义符号:gsl_multifit_nlinear_trs_lmaccel

gsl undefined symbol: gsl_multifit_nlinear_trs_lmaccel

我在使用 GNU 科学图书馆 (GSL) 时遇到了一些问题。 在安装它之后,我用示例 here 测试了它并且它在编译时工作:

gcc -Wall -c main.cpp ; gcc -L/usr/local/lib main.o -lgsl -lgslcblas -lm -libtemt

接下来,我尝试在不更改源代码和编译命令的情况下编译 that。但问题是,当我尝试 运行 结果时,我得到:

./a.out: symbol lookup error: ./a.out: undefined symbol: gsl_multifit nlinear_trs_lmaccel

我试图将其注释掉,但它引发了其他问题。我在完整文档中找到了该变量,但找不到它的定义位置。

由于第一个示例运行正常,我认为 GSL 安装成功,并且由于在不同的代码中使用相同的变量,我认为它是一个全局变量,在库中定义。

有谁知道为什么我无法访问它?

非常感谢!

好吧,流了很多眼泪(不,这是个玩笑)我找到了一个答案:

我复制并粘贴 libgsl.a 和 libgslcblas.a 在我的目录中,我写了那个 makefile:

CC=gcc
CXXFLAGS=-W -Wall -ansi -pedantic
LIBS=libgsl.a libgslcblas.a -lm
main:main.o
    $(CC) -o main main.o $(LDFLAGS) $(LIBS)

main.o: main.cpp 
    $(CC) -o main.o -c main.cpp $(CXXFLAGS)

即使有 2 个缺点,我也很满意这个答案: 1)我不知道如何使用共享库(目前) 2) 我不知道如何通过命令行来实现

希望对大家有所帮助