gpt4 book ai didi

windows-7 - 对 _gzopen 等的 undefined reference

转载 作者:行者123 更新时间:2023-12-02 05:25:32 30 4
gpt4 key购买 nike

您好,我有一个在非 Windows 机器(我认为是 ubuntu 机器,但也可能是 mac os)上构建的 c 语言程序。

我快速浏览了一下并尝试了 cygwin(安装了 cygwin,使用终端转到包含 c 程序的目录并调用了 make。)

这会产生:

$ make
g++ -lz -Wextra -O3 -o bin/lda src/lda_main.o src/data.o src/lda.o c/lda_init.o
src/lda_io.o src/lda_sampler.o src/opts.o

src/data.o:data.cpp:(.text+0x5d): undefined reference to `_gzopen'
src/data.o:data.cpp:(.text+0x9e): undefined reference to `_gzgets'
src/data.o:data.cpp:(.text+0x138): undefined reference to `_gzgets'
src/data.o:data.cpp:(.text+0x1f0): undefined reference to `_gzgets'
src/data.o:data.cpp:(.text+0x257): undefined reference to `_gzclose'
src/data.o:data.cpp:(.text+0x3cb): undefined reference to `_gzopen'
src/data.o:data.cpp:(.text+0x498): undefined reference to `_gzgets'
src/data.o:data.cpp:(.text+0x4b4): undefined reference to `_gzclose'

/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: src/data.o:
bad reloc address 0x1c in section `.eh_frame'
collect2: ld returned 1 exit status
Makefile:16: recipe for target `lda' failed
make: *** [lda] Error 1

我确实安装了 gcc g++ 以及 zlib。

然后我在正确的目录中使用 mingw32-make 尝试了 mingw32。返回错误的速度比肉眼所能看到的要快:ld.exe:找不到 -lz

有什么建议吗?请记住,我是一名受过培训的经济学家,我们知道这有多么有用 :-)。简单对我来说很重要。

最佳答案

更改 makefile,使 -lz 出现在目标文件列表之后。

使用命令行:

g++ -lz -Wextra -O3 -o bin/lda src/lda_main.o src/data.o src/lda.o src/lda_init.o
src/lda_io.o src/lda_sampler.o src/opts.o

不会在库中搜索各种目标文件所需的外部引用。如果你安排它,命令看起来像:

g++ -Wextra -O3 -o bin/lda src/lda_main.o src/data.o src/lda.o src/lda_init.o
src/lda_io.o src/lda_sampler.o src/opts.o -lz

然后将在 libz 中搜索目标文件所需的任何外部引用。

关于windows-7 - 对 _gzopen 等的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13149515/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com