我目前正試圖編譯Snow Leopard上的Julia語言解釋器 - 它給了我一段時間,但我認爲我幾乎已經把它解決了。Makefile似乎忽略了%.o通配符
最新的障礙已被以下錯誤:
make: *** No rule to make target `jltypes.o', needed by `/Users/arman/julia/usr/lib/libjulia-release.dylib'. Stop.
生成文件的相關部分似乎是以下幾點:
SRCS = \
jltypes gf ast builtins module codegen interpreter \
alloc dlload sys init task array dump toplevel jl_uv jlapi profile
...
OBJS = $(SRCS:%=%.o)
...
%.o: %.c $(HEADERS)
@$(PRINT_CC) $(CC) $(CPPFLAGS) $(CFLAGS) $(SHIPFLAGS) -DNDEBUG -c $< -o [email protected]
%.do: %.c $(HEADERS)
@$(PRINT_CC) $(CC) $(CPPFLAGS) $(CFLAGS) $(DEBUGFLAGS) -c $< -o [email protected]
%.o: %.cpp $(HEADERS)
@$(PRINT_CC) $(CXX) $(call exec,$(LLVM_CONFIG) --cxxflags) $(CPPFLAGS) $(CXXFLAGS) $(SHIPFLAGS) -c $< -o [email protected]
%.do: %.cpp $(HEADERS)
@$(PRINT_CC) $(CXX) $(call exec,$(LLVM_CONFIG) --cxxflags) $(CPPFLAGS) $(CXXFLAGS) $(DEBUGFLAGS) -c $< -o [email protected]
...
$(BUILD)/$(JL_LIBDIR)/libjulia-release.$(SHLIB_EXT): julia.expmap $(OBJS) flisp/libflisp.a support/libsupport.a $(LIBUV)
@$(PRINT_LINK) $(CXX) $(SHIPFLAGS) $(OBJS) $(RPATH_ORIGIN) -shared -o [email protected] $(LDFLAGS) $(LIBS) $(SONAME)
$(INSTALL_NAME_CMD)libjulia-release.$(SHLIB_EXT) [email protected]
一切似乎都在地方要適當。據我瞭解,當尋找jltypes.o
的規則時,Make應該使用%.o
規則;然而,顯然它根本找不到規則。
讓我發瘋的是它在Lion上編譯得很好。我已經比較了makefiles,它們的包含和Make程序本身,但無濟於事。這是我第一次使用makefile進行親密體驗,所以請提前感謝您的耐心和幫助,並讓我知道是否需要包含任何其他信息。
你是對的 - 這是一個頭問題。感謝關於'makepp'的指針;調試功能對於這類事情總是很有幫助。 – Arman