2015-01-16 2 views
1

Как вы статически связываете matio, библиотеку для чтения мат-файлов, в основном используемую matlab и октавой в исполняемый файл?Статическая связывание библиотеки matio с использованием g ++

Если файл 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 необходима для компиляции.

теперь у меня есть следующие вопросы:

  1. Что вам нужно сделать, чтобы статически связать библиотеку matio в исполняемый файл?
  2. Зачем мне нужно добавить библиотеку zlib, хотя я сконфигурировал и скомпилировал matio с помощью ./configure --without-libz?
+0

ли вы построить matio с г ++ или какой-либо другой компилятор? – tsnorri

+0

@tsnorri Я использую configure и make для создания matio. По-видимому, он использует icc для создания своих библиотек ... – Woltan

ответ

2

Чтобы построить matio без Zlib вам, видимо, нужно вызвать Configure с

./configure --with-zlib=no 

(Checked это от configure.ac и config/matio_zlib.m4.)

В случае, если вы хотите построить matio с ICC, Intel, developer pages что __intel_sse2_strlen определен в libirc.a на Linux и libirc.lib в Windows.

Для компиляции matio с GCC сделать

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

впоследствии, библиотека matio статически связываемых с вызовом, публикуемую в вопросе

Смежные вопросы