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) 我不知道如何通过命令行来实现
希望对大家有所帮助
我在使用 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) 我不知道如何通过命令行来实现
希望对大家有所帮助