需要在 Ubuntu 上使用与 gcc 相同的开关编译一些附加库。
问:如何确定 Ubuntu 上 libc 使用了哪些 siwtch?
之前的一个建议是使用“apt-src”,但是 apt-src 的手册页中似乎没有任何内容显示二进制包使用了哪些开关。“apt show”有一些信息,但没有实际的编译器开关。
这很重要,因为我正在尝试编译需要在多个库之间进行一致的库切换的其他包。
答案1
这需要一点工作量,但这是可行的。Ubuntu 对编译器标志有一个非常具体的政策,总结如下此 wiki 条目。简而言之,标准运行时编译器标志集是。但是,软件包构建者确实必须更改默认标志集,原因有很多(例如,编译器问题解决方法)。因此,为确保万无一失,您需要下载感兴趣的软件包(在本例中为 libc)的源代码,然后在文件中CFLAGS="-O2 -g"
查找。BUILD_CFLAGS
debian/rules
例如,在 artful 中,您可以在此处找到 libc6 的软件包页面:http://packages.ubuntu.com/artful/libc6-amd64。从右侧的侧边栏,您可以下载源文件。具体来说,控制文件位于glibc_2.26-0ubuntu2.1.debian.tar.xz
。抓取它、解压并查看debian/rules
,我看到BUILD_CFLAGS=-O2 -g
。