《C程序设计新思维》一1.5 以源文件利用库

    xiaoxiao2024-08-03  99

    本节书摘来自异步社区《C程序设计新思维》一书中的第1章,第1.5节,作者 【美】Ben Klemens,更多章节内容可以访问云栖社区“异步社区”公众号查看

    1.5 以源文件利用库

    到目前为止我们讲的都是如何用make来编译自己的代码。而编译别人的代码则是另外一回事了。

    让我们试一个简单的包,即包含大量数值计算函数的GNU科学计算库(GSL)。

    GSL是用Autotools打包的,而Autotools是一系列为在任何机器上都能使用而准备库的工具,其原理是测试所有已知的特殊细节并实现适当的解决方法。Autotools主要关注现代的代码是如何发布的,“3.3用Autotools打包你的代码”将详细讲述如何用它来打包你自己的程序和库。但是到现在,我们可以从用户的角度,来欣赏快速安装有用的库文件的便利。

    GSL经常是由包管理器预编译好的,但是为了掌握编译库的每一步的目的,这里我们先得到GSL的源代码并把它安装好,假设你具有计算机的root权限。

    下载源文件的zip压缩包。如果你还没有wget,使用包管理器安装它,或者在你的浏览器里直接入这个URL。

    解包:x=抽取,v=详细模式,z=用gzip解包,f=文件。

    检测。如果configure步骤给你一个“缺失一个元素”的出错信息,那么用包管理器来获取它并重新运行configure。

    将GSL安装到正确的位置上——需要具备相应权限。

    如果你是在自己家里尝试这个,那么你可能已经有了root权限,上面步骤执行起来会很顺利。如果你是在工作场所并是在使用一个共享的服务器,则拥有超级用户权限的概率应该不会很大,由于最后一步要求超级用户权限,而你没有密码。如果这样,你就屏住呼吸直到下一部分吧。

    它安装了吗?例1-3是一个使用GSL函数来找到95%的置信空间的小程序;编译一下这个例子,看看你能否把这个例子连接起来并运行。

    例1-3 利用GSL来重做一次例1-1(gl_erf.c)

    为了使用刚才安装的库,我们需要修改会用到这个库的程序的makefile文件,以指定库及其位置。

    你可以采用下列语句的一种取决于你是否安装了pkg-config:

    如果库没有被安装在标准的位置并且pkg-config也没有安装,你需要把路径加在定义行的开头,例如:CFLAGS=-I/usr/local/include和LDLIBS=-L/usr/locallib–Wl,-R/usr/local/lib。

    相关资源:C 程序设计语言(特别版)--课后习题源代码
    最新回复(0)