gpt4 book ai didi

c++ - 如何在C++中查找构成翻译单元的所有文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:42 24 4
gpt4 key购买 nike

我正在使用仅 header 库,并且只想包含我实际使用的库部分。

如果我包含一个库的头文件,我如何才能找到该库包含的所有其他头文件?或者更笼统地说:如何找到构成 C++ 翻译单元的所有文件? (我在 Linux 上使用 g++。)

编辑:使用 gcc 的可能方法(答案摘要)

  • gcc -H 产生以下形式的输出:

    ... /usr/include/c++/4.6/cmath
    .... /usr/include/math.h
    ..... /usr/include/x86_64-linux-gnu/bits/huge_val.h
    ..... /usr/include/x86_64-linux-gnu/bits/huge_valf.h

    不过,您必须手动过滤掉系统 header 。

  • gcc -E 为您提供原始预处理器输出:

    # 390 "/usr/include/features.h" 2 3 4
    # 38 "/usr/include/assert.h" 2 3 4
    # 68 "/usr/include/assert.h" 3 4
    extern "C" {
    extern void __assert_fail (__const char *__assertion, __const char *__file,
    unsigned int __line, __const char *__function)
    throw () __attribute__ ((__noreturn__));

    您必须手动解析线标。请参阅:http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html

  • gcc -M 为给定的源文件生成一个 Make 文件。输出如下所示:

    object.o: mylibrary/object.h /usr/include/c++/4.6/map \
    /usr/include/c++/4.6/bits/stl_tree.h \
    /usr/include/c++/4.6/bits/stl_algobase.h \
    /usr/include/c++/4.6/x86_64-linux-gnu/./bits/c++config.h \

最佳答案

我相信您正在寻找 gcc -H .

关于c++ - 如何在C++中查找构成翻译单元的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14684143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com