使用Cygwin编译的库时缺少cyg * .dll,添加时出错

时间:2013-01-30 18:35:44

标签: c++ dll cygwin mingw zlib

我刚刚用Cygwin编译了zlib和libzip,将它们与Windows中的Code :: Blocks一起使用。 我的代码是:

#include <iostream>
#include <zip.h>

int main()
{
    //Open the ZIP archive
    int err = 0;
    zip *z = zip_open("main.zip", 0, &err);
    zip_close(z);

    std::cout << "Hello world!" << std::endl;

    return 0;
}

当我构建我的代码时,它运行良好,没有错误和警告。

当我启动我的程序时,它说我没有cygzip-2.dll。好的,我搜索它并把它放在我的可执行文件夹中。然后,它说我没有cygwin1.dll。好的,我也说了。对于cygz.dll和cyggcc_s-1.dll也一样。

哦,它有效!但是,我的程序始终以相同的状态停止:-1073741819。 它甚至没有告诉我你好:(

我用MinGW编译它(它在Cygwin上做了同样的错误),我链接了libz.a,libzip.a和libzip.dll.a。问题可能来自哪里?

谢谢!

编辑:当我尝试编译我的程序 IN Cygwin时,它表示'未定义引用'_zip_open''和'未定义引用'_zip_close''。可能缺少什么,但是什么?

1 个答案:

答案 0 :(得分:0)

最终,我成功使用了我的2个库!我曾经尝试过使用CMake,但失败了。

所以今天,我决定用GUI重试它。首先,我编译了zlib。我选择了zlib文件夹,并将build文件夹放入其中。我配置了Code :: Blocks和MinGW Makefile以及本机编译器的选项。然后,我在我的'build'文件夹中打开了.cbp(Code :: Blocks Project)并构建了它。

对于libzip,我做了以下步骤,除了我指定了2个变量:

ZLIB_INCLUDE_DIR = zlib文件夹的根目录(其中包含.h和.c)和ZLIB_LIBRARY = [从zlib到构建文件夹的路径] \ libzlib.dll

我也是从.cbp构建的。我将我的所有文件链接到我的项目,它已经完成了!