1

我正在尝试在我的机器上编译一个库“ A ”,并且我在标准路径以及本地/自定义路径中安装了A 的“C”和“D”可选依赖项,自定义路径( -O3)处的库是与标准路径( -O0)处的库相比更优化。

我通过使用 LDFLAGS(-L) 和 LIBS (-l)提供本地库的路径来编译库“A” 。并生成库(libA.so 或 libA.a)!

ldd 是一个工具,它可以判断哪些库与可执行文件链接。

  • 是否有一个等效的工具可以判断哪些库链接到该(即 ldd libscalapack.a )?
  • 有没有办法确保在创建库 A(libA.so/libA.a)时使用可选库库?
  • 有没有办法确定在编译时使用了哪些标准库和本地库?

热切期待您的回复。

4

1 回答 1

0

告诉您的链接器您想要一个加载映射(-Wl,-Map -Wl,mapfile如果您使用的是 gcc)。这将告诉您在链接阶段使用了哪些库。

在共享库的情况下,这并不一定意味着在程序执行期间将使用完全相同的库,这取决于动态加载器的配置。

于 2015-04-23T07:21:15.490 回答