c++ - g++ 与 GSL 的链接问题

标签 c++ hyperlink g++ gsl

g++ -o program main.cpp classOne.cpp classTwo.cpp -lgsl -lgslblas -lm

这就是我在安装 GSL 包时的编译方式。 但现在我正在使用我无权安装 GSL-Library 的服务器。 我有哪些选择?

谢谢

最佳答案

我必须定期执行此操作,请执行以下操作:

  • 在服务器上,在您的主目录中创建一个目录来安装库(比如 mypref),并创建另一个目录来构建库(比如 tmp)。您有两个新目录:~/mypref~/tmp
  • ~/tmp(最新版本为 ftp://ftp.gnu.org/gnu/gsl/gsl-1.14.tar.gz)中下载 GSL 源,解压并进入生成的子目录(gsl-1.14):<

cd ~/tmp
wget ftp://ftp.gnu.org/gnu/gsl/gsl-1.14.tar.gz
tar -xvzf gsl-1.14.tar.gz
cd gsl-1.14

  • 启动 configure 脚本,指定 ~/mypref 作为安装前缀(可能还有其他选项,具体取决于您的服务器):

./configure --prefix=${HOME}/mypref

  • 制作:

制作

  • 并安装:

安装

  • 现在您可以安全地删除 ~/tmp 目录:

CD; rm -rf tmp

现在您可以使用以下方式编译您的程序:

g++ -o 程序 main.cpp classOne.cpp classTwo.cpp -I${HOME}/mypref/include -lm -L${HOME}/mypref/lib -lgsl -lgslcblas

-I-L 分别表示 header 和库的路径。如果您的程序打算在您的主目录不可见的上下文中执行,请考虑静态链接:

g++ -o 程序 main.cpp classOne.cpp classTwo.cpp ${HOME}/mypref/lib/libgsl.a ${HOME}/mypref/lib/libgslcblas.a -I${HOME}/mypref/include -lm

最后一个命令生成的二进制文件比以前更大,但完全独立于 GSL 和 GSLCBLAS。

关于c++ - g++ 与 GSL 的链接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4470838/

相关文章:

c++ - 不规则的 Makefile 行为?

ios - 如何链接到 Storyboard Xcode 的另一个 View

c++ - 编译器资源管理器和 GCC 有不同的输出

c++ - 非成员函数需要通过指针打印出一个数组

c++ - 了解返回时的右值引用

javascript - 打印数组列表

html - 两个页面上的相同 anchor ID : How to link from one page to the anchor on the other page

linux - MinGW 上的 libbfd 缺少哪些库

C++ 接口(interface)与模板

c++ - 为什么在Excel VBA中调用exe不输出文件?