gnu-make

    0熱度

    1回答

    我有點奇怪的大小寫,我正在努力弄清楚。我有一個C++項目,我以一些.cpp文件開始,我需要從多個應用程序使用的多個遠程目錄中編譯一些源文件。這並不理想,但這是我的開發組使用的傳統目錄/編譯結構。 其他項目利用VPATH來實現這一點。但是,它們最終會對所鏈接的所需對象列表進行硬編碼,而且這種方法對我來說看起來不夠優雅或靈活。我想動態編譯和鏈接所有內容。另一個潛在的複雜情況是,這些遠程VPATH目錄中

    2熱度

    1回答

    我試圖將我的PGbouncer從1.5.4升級到1.7.2,但沒有運氣。它返回錯誤: # gmake CC lib/usual/tls/tls.c lib/usual/tls/tls.c: In function `tls_info_callback': lib/usual/tls/tls.c:295: error: structure has no member named `e

    0熱度

    1回答

    我正在逐步驗證我的編譯輸出,並希望能夠在給定配方執行後退出。 如果原來的配方是 $(HEADER_BUILD)/mpversion.h: FORCE | $(HEADER_BUILD) $(Q)$(PYTHON) $(PY_SRC)/makeversionhdr.py [email protected] 我希望能夠在最後添加一行像這樣 $(HEADER_BUILD)/mpversio

    0熱度

    1回答

    如果你讀了GNU進行手動的Catalog of Rules部分,事實證明,它識別後綴之一是.out,並有一個內置的規則: %.out: % # commands to execute (built-in): @rm -f [email protected] cp $< [email protected] 這意味着,如果你有一個文件xyz在一個目錄中,你可以通過簡單地輸入m

    1熱度

    1回答

    狀態考慮以下幾點: all: mv info.h info.h.back generate_info.sh compile mv info.h.back info.h 如何強制使運行即使編譯失敗的最後一行? 我知道.DELETE_ON_ERROR,但這隻涉及在失敗時移除目標。 我也意識到在編譯命令之前添加-的選項。不幸的是,這將使整個製作返回一個很好的錯

    0熱度

    2回答

    我有,我想停下來,如果文件不存在運行整個化妝生成文件的功能,或者至少目標是從執行: vaultfile = ./vault $(shell test -f $(1) || exit 1) define get_token $(shell test -f $1 && cat $1 || exit 2) endef a: token = $(call get_token,$(vault

    0熱度

    2回答

    如何在GNU Makefile中創建非依賴假目標? 要求: 來檢查一個特定的設置的規則 - 可以比下面的例子更加複雜。 如果此規則失敗,則建立特定目標應失敗。 如果這個規則成功了,只有修改了它們的源代碼,才能建立特定的目標。 規則不可能是全球性的,因爲該規則甚至不應該對非特異性指標 如果規則是每一個具體目標的編譯規則之前插入這是可以實現的執行。 因爲它們可能有很多特定的目標,所以我更願意爲此規則創

    1熱度

    1回答

    是否可以將生成的變量用作GNU Make規則中的依賴項?我試圖做 A := 1 2 3 B := a b c C := $(foreach X,$(A),$(foreach Y,$(B),$X-$Y)) a: echo A b: echo B $(C) : $(word 2,$(subst -, ,[email protected])) echo [e

    -2熱度

    2回答

    我試圖複製文件befoe編譯(我有兩個源文件具有相同的名稱,因此我將這些文件複製到具有不同名稱的文件),並在最後刪除它們的MAKEFILE。 我正在嘗試做下列事情,但可能在執行順序中存在不匹配。 我該如何正確地做到這一點? all: copy_dup_files $(dst_dir) $(APP_TARGET_LIB) delete_dup_files copy_dup_files:

    0熱度

    1回答

    我有這個C文件: // test.c #include <stdio.h> int main() { printf("Hello World!\n"); return 0; } 而且這個Makefile OBJS=$(patsubst %.c,%.o,$(wildcard *.c)) EXEC=hello.exe all: $(EXEC) $(EXEC)