如何静态链接matio,一个用于读取mat文件的库,主要由matlab和octave用于可执行文件?
如果文件 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'之类的内容不同。因此,zlib库似乎是编译所必需的。
我现在有以下问题:
答案 0 :(得分:2)
要在没有zlib的情况下构建matio,您显然需要使用
调用configure./configure --with-zlib=no
(从configure.ac
和config/matio_zlib.m4
查看此内容。)
如果你想用icc构建matio,英特尔的developer pages告诉你,Linux上的libirc.a和Windows上的libirc.lib中定义了 __ intel_sse2_strlen 。
使用gcc编译matio
./configure --with-zlib=no CC=gcc
之后,matio库可以与问题中发布的呼叫静态链接