我正在尝试构建一个需要两个包含路径的项目。 我的命令是:
./autogen.sh --prefix /usr/ --libdir /usr/lib/x86_64-linux-gnu/ CXXFLAGS="-I${TensorflowPath} -I${TensorflowPath}/tensorflow/lite/tools/make/downloads/flatbuffers/include" --enable-tflite
并且我已经将TensorflowPath设置为我的tensorflow源目录的正确路径。
但我得到的错误是:
configure: error: unrecognized option: `-I/home/aaron/src/tensorflow/tensorflow/lite/tools/make/downloads/flatbuffers/include'
这实在是太抓狂了!第二个或第三个选项总是出错。请指教!!
这个autogen.sh
脚本似乎在概念上被破坏了,因为将两个非常不同的步骤(生成configure
及其相关文件和运行configure
(统一为一个没有充分理由,并且通过使用将命令行参数传递给子进程的破碎方式实际实现该破碎的概念configure
。
如果您可以将对autogen.sh
的调用替换为对autoreconf -vis .
的调用,只需这样做并忽略损坏的autogen.sh
:
autoreconf -vis .
./configure CXXFLAGS="-Ifoo -Ibar" --prefix=/what/ever --and-so-on
make
make install
如果您绝对需要使用该autogen.sh
脚本,并且不能仅将其替换为对autoreconf -vis .
的调用,请使用单个参数--help
调用autogen.sh
,以防止它configure
运行并产生任何后果。
单个--help
参数不包含空格,因此即使是带有 shell 引用错误的autogen.sh
脚本也应该将其正确传递给configure
。现在autogen.sh
应该先进行构建系统设置,然后运行configure --help
它除了将一堆消息打印到控制台之外什么都不做。
然后,您可以使用正确的参数运行实际的configure
命令:
./autogen.sh --help
./configure CXXFLAGS="-Ifoo -Ibar" --prefix=/what/ever --and-so-on
make
make install