2017-06-03 97 views
0

我一直在試圖爲需要SIP的iOS項目編譯PJSIP庫。遵循this教程,我已經能夠運行configure-iphone腳本。下一步將爲依賴項運行make dep,但遺憾的是,它會導致一些我不知道的錯誤。我也嘗試編輯makefile,所以它直接指向文件,但我仍然收到錯誤,所以它可以找到該文件。使dep:無法完成'depend'

/Applications/Xcode.app/Contents/Developer/usr/bin/make -f Samples.mak depend 
make[2]: Nothing to be done for `depend'. 

是我得到的錯誤。

make文件:

include ../../build.mak 
include $(PJDIR)/build/common.mak 

export LIBDIR := ../lib 
export BINDIR := ../bin 

RULES_MAK := $(PJDIR)/build/rules.mak 
SAMPLES_MAK := $(PJDIR)/pjsip-apps/build/Samples.mak 


############################################################################### 
# Gather all flags. 
# 
export _CFLAGS := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \ 
      $(PJ_CFLAGS) $(CFLAGS) $(CC_INC)../../pjsip/include \ 
      $(CC_INC)../../pjlib/include \ 
      $(CC_INC)../../pjlib-util/include \ 
      $(CC_INC)../../pjnath/include \ 
      $(CC_INC)../../pjmedia/include 
export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \ 
      $(HOST_CXXFLAGS) $(CXXFLAGS) 
export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \ 
      $(APP_LDFLAGS) $(APP_LDLIBS) $(LDFLAGS) 

############################################################################### 
# Defines for building PJSUA 
# 
export PJSUA_SRCDIR = ../src/pjsua 
export PJSUA_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ 
      main.o pjsua_app.o pjsua_app_cli.o pjsua_app_common.o \ 
      pjsua_app_config.o pjsua_app_legacy.o 
export PJSUA_CFLAGS += $(PJ_CFLAGS) $(CFLAGS) 
export PJSUA_CXXFLAGS += $(PJ_CXXFLAGS) $(CFLAGS) 
export PJSUA_LDFLAGS += $(PJ_LDFLAGS) $(PJ_LDLIBS) $(LDFLAGS) 
export PJSUA_EXE:=pjsua-$(TARGET_NAME)$(HOST_EXE) 


############################################################################### 
# Defines for building pjsystest 
# 
export PJSYSTEST_SRCDIR = ../src/pjsystest 
export PJSYSTEST_OBJS += $(OS_OBJS) $(M_OBJS) $(CC_OBJS) $(HOST_OBJS) \ 
      systest.o main_console.o 
export PJSYSTEST_CFLAGS += $(PJ_CFLAGS) $(CFLAGS) 
export PJSYSTEST_CXXFLAGS += $(PJ_CXXFLAGS) $(CFLAGS) 
export PJSYSTEST_LDFLAGS += $(PJ_LDFLAGS) $(PJ_LDLIBS) $(LDFLAGS) 
export PJSYSTEST_EXE:=pjsystest-$(TARGET_NAME)$(HOST_EXE) 


export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 

TARGETS := $(PJSUA_EXE) $(PJSYSTEST_EXE) samples 

all: $(TARGETS) 

swig: 
    $(MAKE) -C ../src/swig 

doc: 

dep: depend 
distclean: realclean 

.PHONY: all dep depend clean realclean distclean 
.PHONY: $(TARGETS) 
.PHONY: $(PJSUA_EXE) $(PJSYSTEST_EXE) 

pjsua: $(PJSUA_EXE) 
$(PJSUA_EXE): 
    $(MAKE) -f $(RULES_MAK) APP=PJSUA app=pjsua $(subst /,$(HOST_PSEP),$(BINDIR)/[email protected]) 
    @if echo "$(TARGET_NAME)" | grep -q "apple-darwin_ios$$"; then \ 
     for F in $(filter %$(TARGET_NAME).a,$(PJ_LIBXX_FILES)); do \ 
     if test -f $$F; then \ 
      tmp=`echo $${F##*/} | sed -e "s/\-$(TARGET_NAME)\.a/.a/"`; \ 
      ln -sf $$F ../src/pjsua/ios/$$tmp; \ 
     fi; \ 
     done; \ 
    fi; 

pjsystest: $(PJSYSTEST_EXE) 
$(PJSYSTEST_EXE): 
    $(MAKE) -f $(RULES_MAK) APP=PJSYSTEST app=pjsystest $(subst /,$(HOST_PSEP),$(BINDIR)/[email protected]) 

samples: 
    $(MAKE) -f $(SAMPLES_MAK) 

.PHONY: pjsua.ko 
pjsua.ko: 
    $(MAKE) -f $(RULES_MAK) APP=PJSUA app=pjsua $(subst /,$(HOST_PSEP),$(LIBDIR)/[email protected]) 

clean depend realclean: 
    $(MAKE) -f $(RULES_MAK) APP=PJSUA app=pjsua [email protected] 
    $(MAKE) -f $(RULES_MAK) APP=PJSYSTEST app=pjsystest [email protected] 
    #Problem happens in the next row! 
    $(MAKE) -f $(SAMPLES_MAK) [email protected] 
    @if test "[email protected]" = "depend"; then \ 
     echo '$(BINDIR)/$(PJSUA_EXE): $(APP_LIB_FILES)' >> .pjsua-$(TARGET_NAME).depend; \ 
     echo '$(BINDIR)/$(PJSYSTEST_EXE): $(APP_LIB_FILES)' >> .pjsystest-$(TARGET_NAME).depend; \ 
    fi 
    @if echo "$(TARGET_NAME)" | grep -q "apple-darwin_ios$$"; then \ 
     for F in $(filter %$(TARGET_NAME).a,$(PJ_LIBXX_FILES)); do \ 
     tmp=`echo $${F##*/} | sed -e "s/\-$(TARGET_NAME)\.a/.a/"`; \ 
     rm -f ../src/pjsua/ios/$$tmp; \ 
     done; \ 
    fi; 

就像我說的,我加了SAMPLES_MAK變量,但遺憾的是它並沒有幫助。我還發現哪條線給了我錯誤,它接近文件末尾$(MAKE) -f $(SAMPLES_MAK) [email protected]

回答

0

使用official建築文件。它適用於iOS所有當前體系結構的100%。

+0

步驟非常相似,所以對我也沒有幫助。我已經打開了Samples.mak,並且有一行'depend:',並且沒有任何內容。我應該只是發表評論,繼續? Bcs似乎沒有依賴關係。 – HeatTheIce

+0

我不知道你爲什麼只想製作該文件。在配置後的官方文檔中,他們運行'make dep && make clean && make'而不指定任何文件。 –

+0

是的。如果我確實做了dep,我會得到一個錯誤,指出在Samples.mak中沒有什麼可以依賴 – HeatTheIce

0

通常這表示您意外地(?)在您的工作目錄中創建了一個名爲depend的文件或目錄。因此,make看到該文件或目錄,並且由於makefile沒有列出目標的任何先決條件,它認爲目標是最新的。

這就是爲什麼一般你聲明這些類型的幫助者目標是.PHONY,但顯然makefile不這樣做。

+0

我已經通過將'SAMPLE_MAK'移出'clean clean realclean'中的單獨的'clean realclean'來解決了這個問題。所以它不會被稱爲當我做'dep' – HeatTheIce

+0

哪個make文件你有修改?我也有同樣的問題... – Zygi