这个问题已被问过很多次,但我无法解决他们的问题,所以我要问
我几天前安装了Cygwin。我尝试使用./configure
命令,但它说
-bash:./ configure:没有这样的文件或目录
我尝试使用
where configure
但我得到了输出
信息:无法找到给定模式的文件。
然后我尝试了grep configure
并获得了此输出
/etc/bash_completion.d/configure
/usr/i686-pc-cygwin/sys-root/usr/share/libtool/libltdl/configure
/usr/share/ELFIO/configure
/usr/share/libtool/libltdl/configure
我尝试导出路径,然后运行./configure
但它也没有用。
我在cygwin configure
目录中找不到名为bin
的可执行文件。
这是否意味着我必须手动添加configure
文件?如何更正?
注意: - 我也曾尝试sh configure
,但也没有效果
答案 0 :(得分:11)
如果软件项目设置为使用autoconf构建,则该工具会生成一个名为configure
的脚本。它向系统查询随后在构建中使用的各种参数,并且特定于要构建的软件包。不同的软件项目具有不同的configure
脚本。它们都被称为configure
,但它们的内容并不相同。
因此,要在设置脚本后实际构建这样的软件项目(通常由维护者在打包源tarball进行分发时完成),您可以调用:
tar xzf <tarball>.gz # or xjf <tarball>.bz2 or whatever
cd <sourcedir> # the one you just untarred
./configure
make
make install
请注意前缀./
,这意味着&#34;位于此目录中的 &#34; (即该项目的源代码树的顶级目录)。
实际上,更好的过程就是所谓的&#34;树外构建&#34;,当您为其设置不同的目录时要构建的二进制文件,因此源树保持不变:
tar xzf <tarball>.gz # or xjf <tarball>.bz2 or whatever
mkdir builddir
cd builddir
../<sourcedir>/configure
make
make install
因此,假设在configure
中没有PATH
可执行文件,您应该从您尝试的源树中调用该名称的脚本从中构建。
答案 1 :(得分:6)
如果我正确理解......
配置不是应该安装在系统上的应用程序,而是应该与源代码一起提供以准备make
命令的脚本。名为configure
的文件应位于源代码的主目录中。
答案 2 :(得分:2)
我知道这是一个老问题。然而,许多人可能会发现此解决方案很有帮助。
通常我们使用make命令在cygwin中编译下载的源代码。在许多情况下,它包含autogen.sh文件。使用
运行该文件def setup_function(function):
db.query('''
CREATE OR REPLACE FUNCTION now_utc() RETURNS timestamp as $$
select now() at time zone 'utc';
$$ language sql;
''')
def teardown_function(function):
db.query('DROP FUNCTION now_utc();')
def test_one ():
print datetime.datetime.utcnow(), db.query('select now_utc();')[0]
time.sleep(5)
print datetime.datetime.utcnow(), db.query('select now_utc();')[0]
def test_two ():
print datetime.datetime.utcnow(), db.query('select now_utc();')[0]
time.sleep(5)
print datetime.datetime.utcnow(), db.query('select now_utc();')[0]
会在很多情况下解决问题。至少它解决了我的问题,然后我可以使用make命令