【问题标题】:CFLAGS and LDFLAGS vs CPATH and LIBRARY_PATHCFLAGS 和 LDFLAGS 与 CPATH 和 LIBRARY_PATH
【发布时间】:2015-10-27 15:03:14
【问题描述】:

在这个帖子里

https://unix.stackexchange.com/questions/149359/what-is-the-correct-syntax-to-add-cflags-and-ldflags-to-configure

有人说 CFLAGS 和 LDFLAGS 不适用于每个配置脚本。为什么?我想对此有更多解释,而不仅仅是声明;)在什么情况下有效,在什么情况下无效?原因是什么?

他(已接受的答案)还提到您应该改用 CPATH 和 LIBRARY_PATH。 CFLAGS 和 CPATH 有什么区别? 同样LDFLAGS和LIBRARY_PATH有什么区别?

最后一个问题:当我使用 LDFLAGS = 不管时,我不会覆盖以前可能由开发人员自己制定的 LDFLAGS 定义吗?语法不应该是类似 ./configure LDFLAGS+=/myPath 吗?

【问题讨论】:

    标签: ldflags cflags


    【解决方案1】:

    CFLAGS/LDFLAGS./configure 使用,CPATH/LIBRARY_PATH 被 GCC/MinGW 编译器/链接器使用。如果./configure 写得好,它首先从环境中获取CFLAGS/LDFLAGS,然后将任何路径附加到它并调用编译器/链接器。在这种情况下,您可以使用

    CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" ./configure
    

    现代./configures可以接受CFLAGS/LDFLAGS作为参数

    ./configure CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib"
    

    但如果./configure贫穷或年老,只有CPATH/LIBRARY_PATH可以提供帮助

    CPATH=/usr/local/include LIBRARY_PATH=/usr/local/lib ./configure
    CPATH=/usr/local/include LIBRARY_PATH=/usr/local/lib make
    

    Microsoft Visual C++ 编译器的CPATH/LIBRARY_PATH 的替代品是INCLUDE/LIB

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2012-04-08
      • 2019-11-16
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      • 2011-05-14
      相关资源
      最近更新 更多