配置命令未找到cygwin

时间:2014-10-10 12:01:25

标签: bash cygwin

这个问题已被问过很多次,但我无法解决他们的问题,所以我要问

我几天前安装了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,但也没有效果

3 个答案:

答案 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命令