【问题标题】:How to specify include directory for configure script如何为配置脚本指定包含目录
【发布时间】:2011-04-26 21:53:38
【问题描述】:

我的工作场所有一个 linux 系统,其中包含非常旧的软件包并且没有 root 访问权限。我正在使用--prefix=[somewhere in homedir] 从源代码编译我需要的包。我的问题是我不知道如何说服 configure 在特定目录中查找头文件。来源是cpp。我尝试使用与g++ 相关的环境变量并查找标志和谷歌搜索,但没有成功。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: c++ linux configuration


    【解决方案1】:

    通常你可以在CXXFLAGS 中传递额外的编译器标志。对于gcc,您可以使用-I/some/dir 指定更多包含目录,例如

    $ ./configure CXXFLAGS="-I/some/dir/"
    

    /some/dir/ 包含您的标头。

    【讨论】:

    • CXXFLAGS 用于 C++ 编译器,因此 CFLAGS 用于 C 编译器。
    【解决方案2】:

    执行此操作的正常方法是--with-<feature>=<header directory>

    【讨论】:

    • 中有什么内容?
    • @Chara: 不管--help告诉你什么。
    【解决方案3】:
    CPPFLAGS = C Preprocessor Flags, these flags will be used for C and C++ compilation.
    
    CFLAGS = C Flags, these flags will be used when compiling C.
    
    CXXFLAGS = C++ Flags, these flags will be used when compiling C++.
    

    -I 标志指定要在编译期间使用的附加包含目录。

    通常在指定包含目录时使用 CPPFLAGS 是个好主意,这样即使项目有一些编译为 C 的源代码,您也知道会使用它。

    当然,在某些情况下,您可能只希望 C 或 C++ 使用包含目录,但不能同时使用两者。在这种情况下,使用 CFLAGS 或 CXXFLAGS 显然会更好地为您服务。

    【讨论】:

      【解决方案4】:

      最好使用 CPPFLAGS 来指定包含目录。

      ./configure CPPFLAGS="-I/your/whatever/includedir"
      

      【讨论】:

        猜你喜欢
        • 2016-04-09
        • 1970-01-01
        • 2013-10-10
        • 1970-01-01
        • 2023-03-07
        • 1970-01-01
        • 2018-03-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多