2011-10-19 6 views
0

CPPコードでmakeコマンドを実行します。私は次のようなエラーメッセージを受け取ります: /home/itaymoav/dev/phpext/sitel/build/entities.cpp: In function ‘void googleset_free_storage(void*)’:
私がエラーのある関数のエントリポイントを表示していることを除いて、わかりました。適切なエラーメッセージを表示するためのフラグなどがありますか?MAKEでより良いエラーメッセージを得るには?

Makefileは - >私はそれが大きい知っている...

srcdir = /home/itaymoav/dev/phpext/build 
builddir = /home/itaymoav/dev/phpext/build 
top_srcdir = /home/itaymoav/dev/phpext/build 
top_builddir = /home/itaymoav/dev/phpext/build 
EGREP = /bin/grep -E 
SED = /bin/sed 
CONFIGURE_COMMAND = './configure' '--enable-entities' 
CONFIGURE_OPTIONS = '--enable-entities' 
SHLIB_SUFFIX_NAME = so 
SHLIB_DL_SUFFIX_NAME = so 
ZEND_EXT_TYPE = zend_extension 
RE2C = exit 0; 
AWK = gawk 
ENTITIES_SHARED_LIBADD = -lstdc++ 
shared_objects_entities = entities.lo GoogleSet.lo 
PHP_PECL_EXTENSION = entities 
PHP_MODULES = $(phplibdir)/entities.la 
PHP_ZEND_EX = 
all_targets = $(PHP_MODULES) $(PHP_ZEND_EX) 
install_targets = install-modules install-headers 
prefix = /usr 
exec_prefix = $(prefix) 
libdir = ${exec_prefix}/lib 
prefix = /usr 
phplibdir = /home/itaymoav/dev/phpext/build/modules 
phpincludedir = /usr/include/php5 
CC = cc 
CFLAGS = -g -O2 
CFLAGS_CLEAN = $(CFLAGS) 
CPP = cc -E 
CPPFLAGS = -DHAVE_CONFIG_H 
CXX = g++ 
CXXFLAGS = -g -O2 
CXXFLAGS_CLEAN = $(CXXFLAGS) 
EXTENSION_DIR = /usr/lib/php5/20090626+lfs 
PHP_EXECUTABLE = /usr/bin/php 
EXTRA_LDFLAGS = 
EXTRA_LIBS = 
INCLUDES = -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
LFLAGS = 
LDFLAGS = 
SHARED_LIBTOOL = 
LIBTOOL = $(SHELL) $(top_builddir)/libtool 
SHELL = /bin/bash 
INSTALL_HEADERS = 
mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p 
INSTALL = $(top_srcdir)/build/shtool install -c 
INSTALL_DATA = $(INSTALL) -m 644 

DEFS = -DPHP_ATOM_INC -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir) 
COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(PHP_FRAMEWORKPATH) 

all: $(all_targets) 
    @echo 
    @echo "Build complete." 
    @echo "Don't forget to run 'make test'." 
    @echo 

build-modules: $(PHP_MODULES) $(PHP_ZEND_EX) 

libphp$(PHP_MAJOR_VERSION).la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) 
    $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o [email protected] 
    [email protected]$(LIBTOOL) --silent --mode=install cp [email protected] $(phptempdir)/[email protected] >/dev/null 2>&1 

libs/libphp$(PHP_MAJOR_VERSION).bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) 
    $(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o [email protected] && cp [email protected] libs/libphp$(PHP_MAJOR_VERSION).so 

install: $(all_targets) $(install_targets) 

install-sapi: $(OVERALL_TARGET) 
    @echo "Installing PHP SAPI module:  $(PHP_SAPI)" 
    [email protected]$(mkinstalldirs) $(INSTALL_ROOT)$(bindir) 
    [email protected] test ! -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); then \ 
     for i in 0.0.0 0.0 0; do \ 
      if test -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i; then \ 
       $(LN_S) $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); \ 
       break; \ 
      fi; \ 
     done; \ 
    fi 
    @$(INSTALL_IT) 

install-modules: build-modules 
    @test -d modules && \ 
    $(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR) 
    @echo "Installing shared extensions:  $(INSTALL_ROOT)$(EXTENSION_DIR)/" 
    @rm -f modules/*.la >/dev/null 2>&1 
    @$(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR) 

install-headers: 
    [email protected] test "$(INSTALL_HEADERS)"; then \ 
     for i in `echo $(INSTALL_HEADERS)`; do \ 
      i=`$(top_srcdir)/build/shtool path -d $$i`; \ 
      paths="$$paths $(INSTALL_ROOT)$(phpincludedir)/$$i"; \ 
     done; \ 
     $(mkinstalldirs) $$paths && \ 
     echo "Installing header files:   $(INSTALL_ROOT)$(phpincludedir)/" && \ 
     for i in `echo $(INSTALL_HEADERS)`; do \ 
      if test "$(PHP_PECL_EXTENSION)"; then \ 
       src=`echo $$i | $(SED) -e "s#ext/$(PHP_PECL_EXTENSION)/##g"`; \ 
      else \ 
       src=$$i; \ 
      fi; \ 
      if test -f "$(top_srcdir)/$$src"; then \ 
       $(INSTALL_DATA) $(top_srcdir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \ 
      elif test -f "$(top_builddir)/$$src"; then \ 
       $(INSTALL_DATA) $(top_builddir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \ 
      else \ 
       (cd $(top_srcdir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i; \ 
       cd $(top_builddir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i) 2>/dev/null || true; \ 
      fi \ 
     done; \ 
    fi 

PHP_TEST_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' 
PHP_TEST_SHARED_EXTENSIONS = ` \ 
    if test "x$(PHP_MODULES)" != "x"; then \ 
     for i in $(PHP_MODULES)""; do \ 
      . $$i; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \ 
     done; \ 
    fi; \ 
    if test "x$(PHP_ZEND_EX)" != "x"; then \ 
     for i in $(PHP_ZEND_EX)""; do \ 
      . $$i; $(top_srcdir)/build/shtool echo -n -- " -d $(ZEND_EXT_TYPE)=$(top_builddir)/modules/$$dlname"; \ 
     done; \ 
    fi` 
PHP_DEPRECATED_DIRECTIVES_REGEX = '^(define_syslog_variables|register_(globals|long_arrays)?|safe_mode|magic_quotes_(gpc|runtime|sybase)?|(zend_)?extension(_debug)?(_ts)?)[\t\ ]*=' 

test: all 
    [email protected] test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \ 
     INI_FILE=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r 'echo php_ini_loaded_file();' 2> /dev/null`; \ 
     if test "$$INI_FILE"; then \ 
      $(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \ 
     else \ 
      echo > $(top_builddir)/tmp-php.ini; \ 
     fi; \ 
     INI_SCANNED_PATH=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r '$$a = explode(",\n", trim(php_ini_scanned_files())); echo $$a[0];' 2> /dev/null`; \ 
     if test "$$INI_SCANNED_PATH"; then \ 
      INI_SCANNED_PATH=`$(top_srcdir)/build/shtool path -d $$INI_SCANNED_PATH`; \ 
      $(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_SCANNED_PATH"/*.ini >> $(top_builddir)/tmp-php.ini; \ 
     fi; \ 
     TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \ 
     TEST_PHP_SRCDIR=$(top_srcdir) \ 
     CC="$(CC)" \ 
      $(PHP_EXECUTABLE) -n -c $(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \ 
    else \ 
     echo "ERROR: Cannot run tests without CLI sapi."; \ 
    fi 

clean: 
    find . -name \*.gcno -o -name \*.gcda | xargs rm -f 
    find . -name \*.lo -o -name \*.o | xargs rm -f 
    find . -name \*.la -o -name \*.a | xargs rm -f 
    find . -name \*.so | xargs rm -f 
    find . -name .libs -a -type d|xargs rm -rf 
    rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(OVERALL_TARGET) modules/* libs/* 

distclean: clean 
    rm -f Makefile config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h stamp-h sapi/apache/libphp$(PHP_MAJOR_VERSION).module buildmk.stamp 
    $(EGREP) define'.*include/php' $(top_srcdir)/configure | $(SED) 's/.*>//'|xargs rm -f 

.PHONY: all clean install distclean test 
.NOEXPORT: 
entities.lo: /home/itaymoav/dev/phpext/build/entities.cpp 
    $(LIBTOOL) --mode=compile $(CXX) -I. -I/home/itaymoav/dev/phpext/build $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/itaymoav/dev/phpext/build/entities.cpp -o entities.lo 
GoogleSet.lo: /home/itaymoav/dev/phpext/build/GoogleSet.cpp 
    $(LIBTOOL) --mode=compile $(CXX) -I. -I/home/itaymoav/dev/phpext/build $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/itaymoav/dev/phpext/build/GoogleSet.cpp -o GoogleSet.lo 
$(phplibdir)/entities.la: ./entities.la 
    $(LIBTOOL) --mode=install cp ./entities.la $(phplibdir) 

./entities.la: $(shared_objects_entities) $(ENTITIES_SHARED_DEPENDENCIES) 
    $(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -o [email protected] -export-dynamic -avoid-version -prefer-pic -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_entities) $(ENTITIES_SHARED_LIBADD) 
+0

この問題はg ++とは関係がなく、メークファイルに問題があります。残念ながら、出力を取り除いているメイクファイルの部分を含めないので、与えられた情報で問題を解決することは不可能です。 –

+0

@ Loki Astari phpize + .configureを実行すると、デフォルトのMakeファイルが得られます –

+0

私の意見は変わりません。必要なmakefileの部分はここにはありません。このmkaefileは別のメイクファイルからインクルードすることができます。しかし、コンパイラが呼び出されたビットはここにはなく、デフォルトのオプションは余分な出力を取り除きませんでした。 –

答えて

0

あなたのMakefileと任意のルールを調べ、それが含まれるファイルをする必要があります。 .cpp.oにコンパイルするルールを見つけて、コンパイル出力でどのようなフィルタリングが行われているかを確認してください。コンパイラの出力を意図的に制限して、通常のコンパイルをあまり冗長にならないようにするには、それを上書きするようにフラグを設定するのが普通です。 Linuxカーネル(および多くの関連するMakefile)は、この目的のためにQUIETフラグを使用するので、簡潔な出力を無効にしてすべてを見るためにmake QUIET=''を実行できます。

ビルドルールがエラーを隠している場合は、バグが存在する可能性があります。あなたがそれを見つけてあなたの質問に加えることができるなら、誰かがそれを修正する方法を知っているかもしれません。

+0

これはphpize /.configureによって自動的に生成されます(私はこれについて言及しましたか?)。私の主張は巨大です。 –

0

引用した行は実際のエラーメッセージではありません。それはちょうど2行の最初です。次の行には本当に興味深いものが含まれています。

ごくまれにしかありませんが、であり、2行目はご安心ください。誰かがエラーメッセージのいくつかを抑制するためにコンパイラをラップしていたからです。

関連する問題