Как вы статически ссылки 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 необходима для компиляции.
Теперь у меня есть следующие вопросы:
Для сборки matio без zlib вам, очевидно, нужно вызвать configure
./configure --with-zlib=no
(Проверил это из configure.ac
а также config/matio_zlib.m4
.)
Если вы хотите собрать matio с помощью icc, Intel страницы разработчика скажи что __intel_sse2_strlen определяется в libirc.a в Linux и libirc.lib в Windows.
Скомпилировать matio с помощью gcc do
./configure --with-zlib=no CC=gcc
после этого библиотека matio статически связана с вызовом, размещенным в вопросе