1 Проблеми са компилацијом

Ово су познати проблеми у вези са Zabbix компилацијом из извора. За све остале случајеве погледајте страницу Познати проблеми.

Библиотека на нестандардној локацији

Zabbix вам омогућава да наведете библиотеку која се налази на нестандардној локацији. У примеру испод, Zabbix ће покренути curl-config са наведене нестандардне локације и користити њен излаз да одреди исправну libcurl датотеку коју треба користити.

$ ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Ово ће функционисати ако је то једина libcurl инсталирана у систему, али можда неће ако је друга libcurl инсталирана на стандардној локацији (на пример, од стране менаџера пакета). Такав је случај када вам је потребна новија верзија библиотеке за Zabbix, а старија за друге апликације.

Стога, навођење компоненте на нестандардној локацији неће увек функционисати када иста компонента постоји и на стандардној локацији.

На пример, ако користите новији libcurl инсталиран у /usr/local са још увек инсталираним libcurl пакетом, Zabbix би могао да пронађе погрешан и компилација ће неуспешно проћи:

usr/bin/ld: ../../src/libs/zbxhttp/libzbxhttp.a(http.o): in function 'zbx_http_convert_to_utf8': /tmp/zabbix-master/src/libs/zbxhttp/http.c:957: undefined reference to 'curl_easy_header' collect2: error: ld returned 1 exit status

Овде, функција curl_easy_header() није доступна у старијој /usr/lib/x86_64-linux-gnu/libcurl.so, али је доступна у новијој /usr/local/lib/libcurl.so.

Проблем лежи у редоследу заставица линкера, а једно решење је да се наведе пуна путања до библиотеке у променљивој LDFLAGS:

$ LDFLAGS="-Wl,--no-as-needed /usr/local/lib/libcurl.so" ./configure --enable-server --with-mysql --with-libcurl=/usr/local/bin/curl-config

Обратите пажњу на опцију -Wl,--no-as-needed која може бити потребна на неким системима (погледајте такође: подразумеване опције линковања на системима базираним на Дебијану).