您如何将matt和octave主要使用的用于读取mat文件的库matio静态链接到可执行文件中?
如果文件main.cpp具有matio功能,则编译器将调用
g++ -o main main.cpp -Imatio/include matio/lib/libmatio.a
失败,并显示一堆错误消息,例如:未定义对`inflateEnd'的引用。可以通过在编译器调用中添加zlib来解决此问题:
g++ -o main main.cpp -Imatio/include matio/lib/libmatio.a -lz
现在,错误消息有所不同,例如对__intel_sse2_strlen的 undefined reference 。因此看来zlib库对于编译是必需的。
我现在有以下问题:
最佳答案
要在没有zlib的情况下构建Matio,您显然需要使用以下命令调用configure
./configure --with-zlib=no
(已从
configure.ac
和config/matio_zlib.m4
进行了检查。)如果要使用icc构建matio,英特尔的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/