adsense728x90


apache module을 unit test Web backend



에서는 그냥 포기했네.

에서는 2가지 방법이 있다고 한다.
  1. apache를 shared core로 build하기 
    http://httpd.apache.org/docs/1.3/dso.html
  2. test 시작할 때마다 apache를 start하기
dlr에서는 1번으로 했나보네.

cutest 는 2번과 비슷한 것을 지원하는 apache module이 있나보다.

1번도 그냥 되는 건가보넹.
을 보고, 

apr_pool_t *pool_;

cut_setup (void)
{
    apr_initialize();
    atexit(apr_terminate);
    apr_pool_create(&pool_, NULL);
}

cut_teardown (void)
{
    apr_pool_destroy(pool_);
}

을 작성했다.

그런데, library를 load하려니,,
*** Warning: Linking the shared library test_regex.la against the loadable module
*** mod_모듈이름.so is not portable!
*** Warning: lib mod_모듈이름.so is a module, not a shared library
libtool: link: gcc  -o .libs/test_regex.so -bundle  .libs/test_regex.o   -L/usr/local/Cellar/cutter/1.2.2/lib -lcutter ...

Undefined symbols for architecture x86_64:
...
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

mac os x에서 warning은 어쩔 수 없나보다.

link가 안되는 문제는 libhttpd.so가 없기 때문인가보다.
Linking the Shared Core
After compiling, the make command links apache 
libtool ... -mode=link gcc ... -o httpd 
..
Linking command for a shared core
libtool ... -mode=link gcc ... 
-shared -o libhttpd.so 
..server/exports.o
를 간과했다.. 뒤늦게 포기. T_T
apache 2.2에는 libhttpd.so 가 없는 것 같다. make해도 안만들어지던뎅..

따로 apache module로 만드는 것이 훨씬 쉽고, portable하겠넹.

게다가, 낮은 버전 autotools에서는
possibly undefined macro: AC_CHECK_CUTTER
문제가 나는 것 같다.



덧글

댓글 입력 영역