【问题标题】:how to find which libraries to link to? or, how can I create *-config (such as sdl-config, llvm-config)?如何找到要链接的库?或者,如何创建 *-config(例如 sdl-config、llvm-config)?
【发布时间】:2010-06-13 23:11:36
【问题描述】:

我想编写一个程序,输出一个库列表,我应该链接到给定的源代码(或对象)文件(对于 C 或 C++ 程序)。

在 *nix 中,有 sdl-config 和 llvm-config 等有用的工具。但是,我希望我的程序也能在 Windows 上运行。

用法:

get-library-names -l /path/to/lib a.cpp b.cpp c.cpp d.obj

然后,get-library-names 将获得从 a.cpp、b.cpp、c.cpp 和 d.obj 调用的函数名称列表。并且,它将搜索/path/to/lib目录中的所有库文件并列出正确链接所需的库。

是否已经编写了这样的工具?写一个这样的工具不是小事吗? 您如何找到应该链接到哪些库?

谢谢。

【问题讨论】:

    标签: configuration gcc linker compilation


    【解决方案1】:

    是的,您可以创建一个 pkg-config 文件,它允许您运行“pkg-config --cflags”来获取编译器标志或“pkg-config --libs”来获取链接器库。

    http://pkg-config.freedesktop.org/wiki/

    如果您使用的是 Linux,请尝试查看 /usr/lib/pkgconfig 以找到一些可用作模型的示例 .pc 文件。您仍然可以在 Windows 上使用 pkg-config,但它不是自带的。

    【讨论】:

    • 看起来您需要对标志进行硬编码。例如.pc文件中,Libs: -lfoo -lbar ...我想知道是否可以通过遍历源代码和共享库文件来获取库名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 2020-12-30
    相关资源
    最近更新 更多