0

FreeBSD で Apache 2 を使用して mod_mono をインストールしていますが、Apache が mod_mono.so モジュールをロードしようとすると、次のエラーが発生します。

/usr/local/apache/modules/mod_mono.so をサーバーに読み込めません: /usr/local/apache/modules/mod_mono.so: 未定義のシンボル "strndup"

私が Apache に設定したプレフィックスは /usr/local/apache で、PHP やその他のモジュールは既に動作しています。/usr/include の roken.h で strndup が参照されていることがわかり、configure コマンドに次の追加を試みましたが、機能しませんでした。

--libdir=/usr/lib --includedir=/usr/include

私も試しました...

--with-mono-prefix=/usr

次に何を試せばいいのかわからない。mod_mono に多くのビルド オプションがあるようには見えません。Mono と XSP は両方とも正常にビルドされているため、mod_mono が機能するだけで済みます。

これを機能させるためのヒントに感謝します。

4

1 に答える 1

0

実装して strndup を追加します。

ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#if !_LIBC
# include "strndup.h"
#endif

#include <stdlib.h>
#include <string.h>

#if !_LIBC
# include "strnlen.h"
# ifndef __strnlen
#  define __strnlen strnlen
# endif
#endif

#undef __strndup
#if _LIBC
# undef strndup
#endif

#ifndef weak_alias
# define __strndup strndup
#endif

char *
__strndup (s, n)
     const char *s;
     size_t n;
{
  size_t len = __strnlen (s, n);
  char *new = malloc (len + 1);

  if (new == NULL)
    return NULL;

  new[len] = '\0';
  return memcpy (new, s, len);
}
#ifdef libc_hidden_def
libc_hidden_def (__strndup)
#endif
#ifdef weak_alias
weak_alias (__strndup, strndup)
#endif
于 2010-10-19T10:43:37.633 に答える