首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >食谱失败,与gcc共建poco

食谱失败,与gcc共建poco
EN

Stack Overflow用户
提问于 2015-02-19 07:05:34
回答 1查看 1.1K关注 0票数 0

嗨,我得到了这个错误,当我试图在cygwin控制台与gcc建立poco时,它与一个食谱失败有关,我不确定如何解决这个问题…

以下是错误代码:

代码语言:javascript
复制
$ make
make -C /cygdrive/c/poco-1.4.6p4-all/Foundation
make[1]: Entering directory '/cygdrive/c/poco-1.4.6p4-all/Foundation'
** Compiling src/ArchiveStrategy.cpp (debug, shared)
g++  -Iinclude -I/cygdrive/c/poco-1.4.6p4-all/CppUnit/include -I/cygdrive/c/poco-1.4.6p4-all/Foundation/include -I/cygdrive/c/poco-1.4.6p4-all/XML/include -I/cygdrive/c/poco-1.4.6p4-all/Util/include -I/cygdrive/c/poco-1.4.6p4-all/Net/include -I/cygdrive/c/poco-1.4.6p4-all/Crypto/include -I/cygdrive/c/poco-1.4.6p4-all/NetSSL_OpenSSL/include -I/cygdrive/c/poco-1.4.6p4-all/Data/include -I/cygdrive/c/poco-1.4.6p4-all/Data/SQLite/include -I/cygdrive/c/poco-1.4.6p4-all/Data/ODBC/include -I/cygdrive/c/poco-1.4.6p4-all/Data/MySQL/include -I/cygdrive/c/poco-1.4.6p4-all/Zip/include -I/cygdrive/c/poco-1.4.6p4-all/PageCompiler/include -I/cygdrive/c/poco-1.4.6p4-all/PageCompiler/File2Page/include -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY -DPOCO_BUILD_HOST=PB00YCT7  -D_XOPEN_SOURCE=500  -g -D_DEBUG  -c src/ArchiveStrategy.cpp -o /cygdrive/c/poco-1.4.6p4-all/Foundation/obj/CYGWIN/x86_64/debug_shared/ArchiveStrategy.o
Assembler messages:
Fatal error: can't create /cygdrive/c/poco-1.4.6p4-all/Foundation/obj/CYGWIN/x86_64/debug_shared/ArchiveStrategy.o: No such file or directory
/cygdrive/c/poco-1.4.6p4-all/build/rules/compile:53: recipe for target '/cygdrive/c/poco-1.4.6p4-all/Foundation/obj/CYGWIN/x86_64/debug_shared/ArchiveStrategy.o' failed
make[1]: *** [/cygdrive/c/poco-1.4.6p4-all/Foundation/obj/CYGWIN/x86_64/debug_shared/ArchiveStrategy.o] Error 1
make[1]: Leaving directory '/cygdrive/c/poco-1.4.6p4-all/Foundation'
Makefile:62: recipe for target 'Foundation-libexec' failed
make: *** [Foundation-libexec] Error 2

下面是靠近第53行的代码,显示为error:

代码语言:javascript
复制
$(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d
    @echo "** Compiling" $< "(debug, shared)"
    $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@

这可能很容易解决,但我已经好几天没有弄明白了,因为我不是c++和may文件方面的专家。

更新:我仍然收到相同的错误,我将添加完整的规则定义文件:

代码语言:javascript
复制
# $Id: //poco/1.4/build/rules/compile#1 $
#
# compile
#
# Compile rule definitions for makefiles
#

#
# Targets
#
.PHONY: all all_static all_shared all_debug all_release \
        clean static_debug static_release shared_debug shared_release

all: $(DEFAULT_TARGET)
all_static: static_debug static_release
all_shared: shared_debug shared_release
all_debug: static_debug shared_debug
all_release: static_release shared_release

#
# Create directories if necessary
#
.PHONY: objdirs libdirs bindirs static_bindirs
objdirs: $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_SHARED) $(OBJPATH_DEBUG_SHARED) 
libdirs: objdirs $(LIBPATH) 
bindirs: objdirs $(BINPATH)
static_bindirs: objdirs $(BINPATH)/static

$(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_SHARED) $(OBJPATH_DEBUG_SHARED) $(LIBPATH) $(BINPATH) $(BINPATH)/static:
    $(MKDIR) $@

#
# Rules for compiling
#   
$(OBJPATH_DEBUG_STATIC)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d
    @echo "** Compiling" $< "(debug, static)"
    $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(STATICOPT_CXX) -c $< -o $@

$(OBJPATH_RELEASE_STATIC)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d
    @echo "** Compiling" $< "(release, static)"
    $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(STATICOPT_CXX) -c $< -o $@

$(OBJPATH_DEBUG_STATIC)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d
    @echo "** Compiling" $< "(debug, static)"
    $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(STATICOPT_CC) -c $< -o $@

$(OBJPATH_RELEASE_STATIC)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d
    @echo "** Compiling" $< "(release, static)"
    $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(STATICOPT_CC) -c $< -o $@

$(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d
    @echo "** Compiling" $< "(debug, shared)"
    $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@

$(OBJPATH_RELEASE_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d
    @echo "** Compiling" $< "(release, shared)"
    $(CXX) $(INCLUDE) $(CXXFLAGS) $(RELEASEOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@

$(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d
    @echo "** Compiling" $< "(debug, shared)"
    $(CC) $(INCLUDE) $(CFLAGS) $(DEBUGOPT_CC) $(SHAREDOPT_CC) -c $< -o $@

$(OBJPATH_RELEASE_SHARED)/%.o: $(SRCDIR)/%.c $(DEPPATH)/%.d
    @echo "** Compiling" $< "(release, shared)"
    $(CC) $(INCLUDE) $(CFLAGS) $(RELEASEOPT_CC) $(SHAREDOPT_CC) -c $< -o $@

#
# Rules for creating dependency information
#
$(DEPPATH)/%.d: $(SRCDIR)/%.cpp
    @echo "** Creating dependency info for" $^
    $(MKDIR) $(DEPPATH)
    $(DEP) $(SRCDIR)/$(patsubst %.d,%.cpp,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CXXFLAGS) 

$(DEPPATH)/%.d: $(SRCDIR)/%.c
    @echo "** Creating dependency info for" $^
    $(MKDIR) $(DEPPATH)
    $(DEP) $(SRCDIR)/$(patsubst %.d,%.c,$(notdir $@)) $@ $(OBJPATH_DEBUG_STATIC) $(OBJPATH_RELEASE_STATIC) $(OBJPATH_DEBUG_SHARED) $(OBJPATH_RELEASE_SHARED) $(INCLUDE) $(CFLAGS)

depend: $(addprefix $(DEPPATH)/,$(addsuffix .d,$(objects)))
EN

回答 1

Stack Overflow用户

发布于 2015-02-19 20:12:26

我会说问题是这个目录不存在。编译器不会创建不存在的目录。在调用编译器之前,尝试修改您的规则以创建目录:

代码语言:javascript
复制
$(OBJPATH_DEBUG_SHARED)/%.o: $(SRCDIR)/%.cpp $(DEPPATH)/%.d
        @echo "** Compiling" $< "(debug, shared)"
        mkdir -p $(dir $@)
        $(CXX) $(INCLUDE) $(CXXFLAGS) $(DEBUGOPT_CXX) $(SHAREDOPT_CXX) -c $< -o $@
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28595683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档