gpt4 book ai didi

c++ - 使用 g++ 静态链接 matio 库

转载 作者:行者123 更新时间:2023-11-30 03:57:26 28 4
gpt4 key购买 nike

如何静态链接matio ,一个用于读取 mat 文件的库,主要由 matlab 和 octave 使用到可执行文件中?

如果文件 main.cpp 包含编译器调用的 matio 功能

g++ -o main main.cpp -Imatio/include matio/lib/libmatio.a

失败并出现一堆错误消息,例如:对 `inflateEnd' 的 undefined reference 。这也可以通过将 zlib 添加到编译器调用来解决:

g++ -o main main.cpp -Imatio/include matio/lib/libmatio.a -lz

现在,错误消息与类似undefined reference to `__intel_sse2_strlen' 不同。因此看来 zlib 库对于编译是必需的。

我现在有以下问题:

  1. 要在可执行文件中静态链接 matio 库,您需要做什么?
  2. 为什么我需要添加 zlib 库,即使我使用 ./configure --without-libz 配置和编译了 matio?

最佳答案

要在没有 zlib 的情况下构建 matio,您显然需要调用配置

./configure --with-zlib=no

(从 configure.acconfig/matio_zlib.m4 中检查。)

如果您想使用 icc 构建 matio,Intel 的 developer pages告诉 __intel_sse2_strlen 在 Linux 上定义在 libirc.a 中,在 Windows 上定义在 libirc.lib 中。

用gcc编译matio

./configure --with-zlib=no CC=gcc

之后,matio 库可与问题中发布的调用静态链接

关于c++ - 使用 g++ 静态链接 matio 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27983513/

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