我已经使用GNU autoconf为我的程序生成配置脚本,我现在正试图为Windows进行交叉编译。
在Linux下,要更改我提供的数据文件的位置--datarootdir=/blah
,它可以正常工作。然而,在Windows下,我的应用程序的路径在运行时才会被人知道(因为用户可以选择将其安装在任何地方。)因此,我想将数据目录设置为当前目录,无论在哪里在应用程序启动时。
不幸的是,通过--datarootdir=.
并不起作用:
configure: error: expected an absolute directory name for --datarootdir: .
如何在运行时告诉Autoconf / configure您想要相对于当前目录的路径?
答案 0 :(得分:3)
我想我找到了部分解决方案。似乎--datarootdir
用于控制文件安装的位置,因此它需要是make install
的好处的绝对路径。但是在编译期间可以覆盖它:
make datadir="."
这样,在编译期间,代码认为$(datadir)
是“。”但是当运行make install
时,文件仍然放在./configure --datarootdir=...
答案 1 :(得分:1)
只需给它一个等于当前工作目录的绝对路径:
./configure --datarootdir=$PWD