我现在想用g++编译ttclasses,所以对ttclasses里原来的makefile做了小小的改动,把CPLUSPLUS配成g++然后去掉了一些g++不支持的编译选项,然后编译。目标文件都能成功生成,但是在生成库文件的时候出现了如下错误提示:
g++ -G lib/libttclassesCS.so objOpt/TTCmd.o objOpt/TTCommand.o objOpt/TTConnection.o objOpt/TTColumn.o objOpt/TTConnectionPool.o objOpt/TTParameter.o objOpt/TTCatalog.o objOpt/TTStatus.o objOpt/TTTypes.o objOpt/TTEnvironment.o objOpt/TTLog.o objOpt/TTGlobal.o objOpt/ttTime.o
g++: lib/libttclassesCS.so: No such file or directory
make: *** [lib/libttclassesCS.so] Error 1
我对makefile还不太理解,是不是这个生成库的命令写错了,不过这个是原来ttclasses里的Makefile我只把原来的CC换成了g++啊,希望高人帮我解决一下。
"Makefile" 167 行,4784 字符
#######################################################################
#
# 64-bit Solaris (Workshop Compiler) Makefile for the TimesTen
# TTCLASSES class library.
#
# Copyright (C) 1999, 2008, Oracle. All rights reserved.
#
#######################################################################ODBC = /export/home5/tt/TimesTen/tt70
TTVER = 70
TTVERSION = TT_$(TTVER)
64BIT = -DTT_64BIT
# Add this flag to DEFS to workaround a Sun Workshop 5 strstream bug/hang
# related to synchronization between the C++/ostream and C/printf routines
# SOL64_OSTREAM_BUG = -DSOL64_OSTRSTREAMTHREAD_SAFE = -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS
OPTFLAG =
PICFLAG =
DEBUGFLAG = -g -DTTDEBUG
INCS = -I$(ODBC)/include -I$(TTC_INCLUDEDIR)
DEFS = -D$(TTVERSION) -DTTEXCEPT $(THREAD_SAFE) $(64BIT) -DTTCLASSES
PLATFORM = $(PICFLAG)CFLAGS = $(DEFS) $(INCS) $(OPTFLAG) $(PLATFORM)
DIRLIBS = -lpthread -lsocket -L $(ODBC)/lib -R $(ODBC)/lib -lttclientCPLUSPLUS = g++# default LINK line (both opt/debug)
LINK = $(CPLUSPLUS) -G $(OPTFLAG) $(PLATFORM)ARFLAGS =SHLDEXT = so
AREXT = aPLAT_SPECIFIC_CLEAN = rm -rf SunWS_cache lib/SunWS_cacheOBJ_DIR = objOptTTC_INCLUDEDIR = $(ODBC)/include/ttclassesTTC_CPP_OBJS = \
$(OBJ_DIR)/TTCmd.o \
$(OBJ_DIR)/TTCommand.o \
$(OBJ_DIR)/TTConnection.o \
$(OBJ_DIR)/TTColumn.o \
$(OBJ_DIR)/TTConnectionPool.o \
$(OBJ_DIR)/TTParameter.o \
$(OBJ_DIR)/TTCatalog.o \
$(OBJ_DIR)/TTStatus.o \
$(OBJ_DIR)/TTTypes.o \
$(OBJ_DIR)/TTEnvironment.o \
$(OBJ_DIR)/TTLog.o \
$(OBJ_DIR)/TTGlobal.oTTC_C_OBJS = \
$(OBJ_DIR)/ttTime.oTTC_NOXLA_OBJS = \
$(OBJ_DIR)/TTCmd.o \
$(OBJ_DIR)/TTCommand.o \
$(OBJ_DIR)/TTCmd.o \
$(OBJ_DIR)/TTCommand.o \
$(OBJ_DIR)/TTConnection.o \
$(OBJ_DIR)/TTColumn.o \
$(OBJ_DIR)/TTConnectionPool.o \
$(OBJ_DIR)/TTParameter.o \
$(OBJ_DIR)/TTCatalog.o \
$(OBJ_DIR)/TTStatus.o \
$(OBJ_DIR)/TTTypes.o \
$(OBJ_DIR)/TTEnvironment.o \
$(OBJ_DIR)/ttTime.o \
$(OBJ_DIR)/TTLog.o \
$(OBJ_DIR)/TTGlobal.o#
# Top-level targets
#TTCLASSES_LIB = lib/libttclassesCS.$(SHLDEXT)all: shared_optdebug:
$(MAKE) -f MakefileCS cleanobjs
$(MAKE) -f MakefileCS static_debug
$(MAKE) -f MakefileCS cleanobjs
$(MAKE) -f MakefileCS shared_debugopt:
$(MAKE) -f MakefileCS cleanobjs
$(MAKE) -f MakefileCS static_opt
$(MAKE) -f MakefileCS cleanobjs
$(MAKE) -f MakefileCS shared_optstatic_debug:
@$(MAKE) -f MakefileCS OBJ_DIR=objDbg TTCLASSES_LIB='lib/libttclassesCSD.$(AREXT)' \
OPTFLAG='$(DEBUGFLAG)' PICFLAG='' LINK='ar $(ARFLAGS) cr'static_opt:
@$(MAKE) -f MakefileCS TTCLASSES_LIB='lib/libttclassesCS.$(AREXT)' \
PICFLAG='' LINK='ar $(ARFLAGS) cr'shared_debug:
@$(MAKE) -f MakefileCS OBJ_DIR=objDbg TTCLASSES_LIB='lib/libttclassesCSD.$(SHLDEXT)' \
OPTFLAG='$(DEBUGFLAG)'shared_opt: $(TTCLASSES_LIB)
install:
@echo Installing TTClasses libraries
@if [ -f 'lib/libttclassesCS.$(AREXT)' ]; then \
rm -f $(ODBC)/lib/libttclassesCS.$(AREXT); \
cp lib/libttclassesCS.$(AREXT) $(ODBC)/lib; \
echo "cp lib/libttclassesCS.$(AREXT) $(ODBC)/lib"; fi;
@if [ -f 'lib/libttclassesCSD.$(AREXT)' ]; then \
rm -f $(ODBC)/lib/libttclassesCSD.$(AREXT); \
cp lib/libttclassesCSD.$(AREXT) $(ODBC)/lib; \
echo "cp lib/libttclassesCSD.$(AREXT) $(ODBC)/lib"; fi;
@if [ -f 'lib/libttclassesCS.$(SHLDEXT)' ]; then \
rm -f $(ODBC)/lib/libttclassesCS.$(SHLDEXT); \
cp lib/libttclassesCS.$(SHLDEXT) $(ODBC)/lib; \
echo "cp lib/libttclassesCS.$(SHLDEXT) $(ODBC)/lib"; fi;
@if [ -f 'lib/libttclassesCSD.$(SHLDEXT)' ]; then \
rm -f $(ODBC)/lib/libttclassesCSD.$(SHLDEXT); \
cp lib/libttclassesCSD.$(SHLDEXT) $(ODBC)/lib; \
echo "cp lib/libttclassesCSD.$(SHLDEXT) $(ODBC)/lib"; fi;cleanobjs:
-rm -rf objDbg/*.o objOpt/*.o
$(PLAT_SPECIFIC_CLEAN)clean: cleanobjs
-rm -rf lib/*.$(AREXT) lib/*.$(SHLDEXT)$(TTCLASSES_LIB): $(TTC_CPP_OBJS) $(TTC_C_OBJS)
$(LINK) $@ $(TTC_CPP_OBJS) $(TTC_C_OBJS)
@$(MAKE) -f MakefileCS done TTCLASSES_LIB=$@done:
@echo "***********************************************************"
@echo "Built $(TTCLASSES_LIB)"
@echo "Now run 'make -f MakefileCS install' to install the the TTClasses library"
@echo "into $(ODBC)/lib"
@echo "***********************************************************"# -------------------------------------------------------------------------
# build targets
# -------------------------------------------------------------------------.SUFFIXES: .cpp $(SUFFIXES).KEEP.STATE:$(OBJ_DIR)/%.o:%.c
@if [ ! -d $(OBJ_DIR) ]; then mkdir -p $(OBJ_DIR); fi
$(CC) $(CFLAGS) -c $*.c -o $@$(OBJ_DIR)/%.o:%.cpp
@if [ ! -d $(OBJ_DIR) ]; then mkdir -p $(OBJ_DIR); fi
$(CPLUSPLUS) $(CFLAGS) -c $*.cpp -o $@
g++ -G lib/libttclassesCS.so objOpt/TTCmd.o objOpt/TTCommand.o objOpt/TTConnection.o objOpt/TTColumn.o objOpt/TTConnectionPool.o objOpt/TTParameter.o objOpt/TTCatalog.o objOpt/TTStatus.o objOpt/TTTypes.o objOpt/TTEnvironment.o objOpt/TTLog.o objOpt/TTGlobal.o objOpt/ttTime.o
g++: lib/libttclassesCS.so: No such file or directory
make: *** [lib/libttclassesCS.so] Error 1
我对makefile还不太理解,是不是这个生成库的命令写错了,不过这个是原来ttclasses里的Makefile我只把原来的CC换成了g++啊,希望高人帮我解决一下。
"Makefile" 167 行,4784 字符
#######################################################################
#
# 64-bit Solaris (Workshop Compiler) Makefile for the TimesTen
# TTCLASSES class library.
#
# Copyright (C) 1999, 2008, Oracle. All rights reserved.
#
#######################################################################ODBC = /export/home5/tt/TimesTen/tt70
TTVER = 70
TTVERSION = TT_$(TTVER)
64BIT = -DTT_64BIT
# Add this flag to DEFS to workaround a Sun Workshop 5 strstream bug/hang
# related to synchronization between the C++/ostream and C/printf routines
# SOL64_OSTREAM_BUG = -DSOL64_OSTRSTREAMTHREAD_SAFE = -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS
OPTFLAG =
PICFLAG =
DEBUGFLAG = -g -DTTDEBUG
INCS = -I$(ODBC)/include -I$(TTC_INCLUDEDIR)
DEFS = -D$(TTVERSION) -DTTEXCEPT $(THREAD_SAFE) $(64BIT) -DTTCLASSES
PLATFORM = $(PICFLAG)CFLAGS = $(DEFS) $(INCS) $(OPTFLAG) $(PLATFORM)
DIRLIBS = -lpthread -lsocket -L $(ODBC)/lib -R $(ODBC)/lib -lttclientCPLUSPLUS = g++# default LINK line (both opt/debug)
LINK = $(CPLUSPLUS) -G $(OPTFLAG) $(PLATFORM)ARFLAGS =SHLDEXT = so
AREXT = aPLAT_SPECIFIC_CLEAN = rm -rf SunWS_cache lib/SunWS_cacheOBJ_DIR = objOptTTC_INCLUDEDIR = $(ODBC)/include/ttclassesTTC_CPP_OBJS = \
$(OBJ_DIR)/TTCmd.o \
$(OBJ_DIR)/TTCommand.o \
$(OBJ_DIR)/TTConnection.o \
$(OBJ_DIR)/TTColumn.o \
$(OBJ_DIR)/TTConnectionPool.o \
$(OBJ_DIR)/TTParameter.o \
$(OBJ_DIR)/TTCatalog.o \
$(OBJ_DIR)/TTStatus.o \
$(OBJ_DIR)/TTTypes.o \
$(OBJ_DIR)/TTEnvironment.o \
$(OBJ_DIR)/TTLog.o \
$(OBJ_DIR)/TTGlobal.oTTC_C_OBJS = \
$(OBJ_DIR)/ttTime.oTTC_NOXLA_OBJS = \
$(OBJ_DIR)/TTCmd.o \
$(OBJ_DIR)/TTCommand.o \
$(OBJ_DIR)/TTCmd.o \
$(OBJ_DIR)/TTCommand.o \
$(OBJ_DIR)/TTConnection.o \
$(OBJ_DIR)/TTColumn.o \
$(OBJ_DIR)/TTConnectionPool.o \
$(OBJ_DIR)/TTParameter.o \
$(OBJ_DIR)/TTCatalog.o \
$(OBJ_DIR)/TTStatus.o \
$(OBJ_DIR)/TTTypes.o \
$(OBJ_DIR)/TTEnvironment.o \
$(OBJ_DIR)/ttTime.o \
$(OBJ_DIR)/TTLog.o \
$(OBJ_DIR)/TTGlobal.o#
# Top-level targets
#TTCLASSES_LIB = lib/libttclassesCS.$(SHLDEXT)all: shared_optdebug:
$(MAKE) -f MakefileCS cleanobjs
$(MAKE) -f MakefileCS static_debug
$(MAKE) -f MakefileCS cleanobjs
$(MAKE) -f MakefileCS shared_debugopt:
$(MAKE) -f MakefileCS cleanobjs
$(MAKE) -f MakefileCS static_opt
$(MAKE) -f MakefileCS cleanobjs
$(MAKE) -f MakefileCS shared_optstatic_debug:
@$(MAKE) -f MakefileCS OBJ_DIR=objDbg TTCLASSES_LIB='lib/libttclassesCSD.$(AREXT)' \
OPTFLAG='$(DEBUGFLAG)' PICFLAG='' LINK='ar $(ARFLAGS) cr'static_opt:
@$(MAKE) -f MakefileCS TTCLASSES_LIB='lib/libttclassesCS.$(AREXT)' \
PICFLAG='' LINK='ar $(ARFLAGS) cr'shared_debug:
@$(MAKE) -f MakefileCS OBJ_DIR=objDbg TTCLASSES_LIB='lib/libttclassesCSD.$(SHLDEXT)' \
OPTFLAG='$(DEBUGFLAG)'shared_opt: $(TTCLASSES_LIB)
install:
@echo Installing TTClasses libraries
@if [ -f 'lib/libttclassesCS.$(AREXT)' ]; then \
rm -f $(ODBC)/lib/libttclassesCS.$(AREXT); \
cp lib/libttclassesCS.$(AREXT) $(ODBC)/lib; \
echo "cp lib/libttclassesCS.$(AREXT) $(ODBC)/lib"; fi;
@if [ -f 'lib/libttclassesCSD.$(AREXT)' ]; then \
rm -f $(ODBC)/lib/libttclassesCSD.$(AREXT); \
cp lib/libttclassesCSD.$(AREXT) $(ODBC)/lib; \
echo "cp lib/libttclassesCSD.$(AREXT) $(ODBC)/lib"; fi;
@if [ -f 'lib/libttclassesCS.$(SHLDEXT)' ]; then \
rm -f $(ODBC)/lib/libttclassesCS.$(SHLDEXT); \
cp lib/libttclassesCS.$(SHLDEXT) $(ODBC)/lib; \
echo "cp lib/libttclassesCS.$(SHLDEXT) $(ODBC)/lib"; fi;
@if [ -f 'lib/libttclassesCSD.$(SHLDEXT)' ]; then \
rm -f $(ODBC)/lib/libttclassesCSD.$(SHLDEXT); \
cp lib/libttclassesCSD.$(SHLDEXT) $(ODBC)/lib; \
echo "cp lib/libttclassesCSD.$(SHLDEXT) $(ODBC)/lib"; fi;cleanobjs:
-rm -rf objDbg/*.o objOpt/*.o
$(PLAT_SPECIFIC_CLEAN)clean: cleanobjs
-rm -rf lib/*.$(AREXT) lib/*.$(SHLDEXT)$(TTCLASSES_LIB): $(TTC_CPP_OBJS) $(TTC_C_OBJS)
$(LINK) $@ $(TTC_CPP_OBJS) $(TTC_C_OBJS)
@$(MAKE) -f MakefileCS done TTCLASSES_LIB=$@done:
@echo "***********************************************************"
@echo "Built $(TTCLASSES_LIB)"
@echo "Now run 'make -f MakefileCS install' to install the the TTClasses library"
@echo "into $(ODBC)/lib"
@echo "***********************************************************"# -------------------------------------------------------------------------
# build targets
# -------------------------------------------------------------------------.SUFFIXES: .cpp $(SUFFIXES).KEEP.STATE:$(OBJ_DIR)/%.o:%.c
@if [ ! -d $(OBJ_DIR) ]; then mkdir -p $(OBJ_DIR); fi
$(CC) $(CFLAGS) -c $*.c -o $@$(OBJ_DIR)/%.o:%.cpp
@if [ ! -d $(OBJ_DIR) ]; then mkdir -p $(OBJ_DIR); fi
$(CPLUSPLUS) $(CFLAGS) -c $*.cpp -o $@
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货