![如何在 ./configure 中放置多个 -I、-L 和 -l 标志?](https://linux22.com/image/195790/%E5%A6%82%E4%BD%95%E5%9C%A8%20.%2Fconfigure%20%E4%B8%AD%E6%94%BE%E7%BD%AE%E5%A4%9A%E4%B8%AA%20-I%E3%80%81-L%20%E5%92%8C%20-l%20%E6%A0%87%E5%BF%97%EF%BC%9F.png)
我正在尝试使用./configure
.
我有
三个包含目录
-I/path1/include -I/path2/include -I/path3/include
两个链接目录
-L/path1/lib -L/path2/lib
两个
-l
标志选项-ltensorflow -lasan
两个编译标志
-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