如何在 ./configure 中放置多个 -I、-L 和 -l 标志?

如何在 ./configure 中放置多个 -I、-L 和 -l 标志?

我正在尝试使用./configure.

我有

  1. 三个包含目录

    -I/path1/include
    -I/path2/include
    -I/path3/include
    
  2. 两个链接目录

    -L/path1/lib
    -L/path2/lib
    
  3. 两个-l标志选项

    -ltensorflow
    -lasan
    
  4. 两个编译标志

    -O3
    -g
    

我怎样才能有效地将所有这些标志作为选项放入./configure

答案1

执行此操作的规范方法是提供值各种变量./configure调用中:

./configure CPPFLAGS="-I/path1/include -I/path2/include -I/path3/include" \
            CFLAGS="-O3 -g" \
            LDFLAGS="-L/path1/lib -L/path2/lib" \
            LIBS="-ltensorflow -lasan"

如果使用 C++ 编译器,请指定CXXFLAGS代替(或除了)CFLAGS

这些变量也可以在环境中设置,但是推荐的做法是将它们指定为命令行参数以便存储它们的值以供重复使用。看配置编译时强制覆盖(例如CXXFLAGS等)了解详情。

请注意,在大多数情况下,将许多路径指定为标志是不常见的;相反,我希望找到--with选项来告诉configure脚本在哪里可以找到各种依赖项。例如,--with-tensorflow=/path/to/tensorflow这将导致设置适当的-I和标志。-L跑步

./configure --help

查看有哪些可用选项。

答案2

export CFLAGS="-I/path1/include -I/path2/include -I/path3/include -O3 -g"
export CXXFLAGS=$CFLAGS
export LDFLAGS="-L/path1/lib -L/path2/lib -ltensorflow -lasan"
./configure && make

相关内容