2011-10-19 27 views
0

我在CPP代碼上運行make命令。我收到如下錯誤消息: /home/itaymoav/dev/phpext/sitel/build/entities.cpp: In function ‘void googleset_free_storage(void*)’:
可以看出,除了向我顯示帶有錯誤的函數的入口點外,它不再提供數據。是否有一個標誌或其他方式來獲取正確的錯誤信息?如何在MAKE中獲得更好的錯誤消息?

製作文件 - >我知道這是大...

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 ++無關,並且與您的makefile有關。不幸的是,你不包含剝離輸出的makefile部分,所以用給定的信息來解決你的問題是不可能的。 –

+0

@Loki Astari這是運行phpize +時得到的默認Make文件.configure –

+0

不會改變我的意見。我們需要的makefile部分不在這裏。這個mkaefile可能包含在另一個makefile中。但是,編譯器被調用的位不在這裏,默認選項不會去除額外的輸出。 –

回答

0

你必須檢查你的Makefile任何規則文件,它包括。查找將.cpp編譯爲.o的規則,並查看它在編譯輸出中執行的過濾。如果它有意限制編譯器的輸出以使正常編譯更少冗長,那麼它可能會設置一個標誌,您可以設置該標誌來覆蓋該標誌。 Linux內核(和許多相關的Makefiles)爲此使用QUIET標誌,因此您可以使用make QUIET=''來禁用簡潔輸出並查看所有內容。

如果構建規則隱藏錯誤,則可能存在錯誤。如果你能找到它並將其添加到你的問題中,那麼有人可能會知道如何解決它。

+0

它是由phpize /.configure自動生成的(難道我提到我是這方面的核心?)。我的觀點是巨大的。 –

0

您引用的行不是真正的錯誤消息。這只是兩條線的第一條。以下行包含真正有趣的東西。

只有在極少數情況下不是第二行應該擔心。因爲然後有人包裝了編譯器來抑制它的一些錯誤信息。

相關問題