[comment]: # ({db9581f0-7ceec24f})
# 1 コンパイルの問題

これらは、ソースからのZabbixコンパイルに関する既知の問題です。他のすべてのケースについては、[既知の問題](/manual/installation/known_issues)を参照してください。

[comment]: # ({/db9581f0-7ceec24f})

[comment]: # ({3ad90e1c-434390ba})
#### HP-UXでのZabbixエージェントのコンパイル

HP-UXパッケージサイト<http://hpux.connect.org.uk>からPCREライブラリをインストールする場合(例えば`pcre-8.42-ia64_64-11.31.depot`から)、64bit版のライブラリのみが`/usr/local/lib/hpux64`ディレクトリにインストールされます。

この場合、エージェントのコンパイルを成功させるためには、以下のように`configure`スクリプトのオプションをカスタマイズする必要があります。

    CFLAGS="+DD64" ./configure --enable-agent --with-libpcre-include=/usr/local/include --with-libpcre-lib=/usr/local/lib/hpux64

[comment]: # ({/3ad90e1c-434390ba})

[comment]: # ({1cd70dd2-c904d9ff})
#### 非標準の場所にあるライブラリ

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`では利用可能です。

問題はリンカーフラグの順序にあり、1つの解決策は、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`オプションが必要かもしれないことに注意してください（参照: [debianベース](https://wiki.debian.org/toolchain/dsolinking)システムのデフォルトリンクオプション)。

[comment]: # ({/1cd70dd2-c904d9ff})

[comment]: # ({35610a10-766dd1da})
#### 一部のシステムでスタックサイズが小さすぎる問題

スタックオーバーフローによりZabbixがクラッシュまたはフリーズする場合は、[ソースの設定](/manual/installation/install#configure-the-sources)時に`--with-stacksize`オプションを使用して、スレッドごとのスタックサイズを増やすことができます。

この問題は、デフォルトのスレッドスタック制限が低いシステム、特に複数のスレッドが作成される[前処理](/manual/config/items/preprocessing)時に発生する可能性があります。

次の例では、スタックサイズをスレッドごとに512KBに設定します。

```bash
./configure --enable-server --with-mysql --with-stacksize=512
```

Linuxベースのシステムでは、`ulimit -s`コマンドを使用して、実行時にシステムのスレッドスタック制限を確認できます。

[comment]: # ({/35610a10-766dd1da})
