我在一個目錄中寫了一些函式,我想生成靜態庫并將頭檔案移動到一個專用檔案夾。
THIS_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
all: install_header
HEADERS = \
ps_evset.h \
list/list_utils.h \
list/list_traverse.h \
list/list_struct.h
install_header: ${HEADERS}
install -d ${THIS_DIR}/../build/include/evsets
install ${HEADERS} ${THIS_DIR}/../build/include/evsets
但是當我到達那個目錄時,我發現串列目錄沒有被創建。
├── list_struct.h
├── list_traverse.h
├── list_utils.h
└── ps_evset.h
目錄結構完全沒有改變和移動?如果更改,使用的檔案#include "list/list_traverse.h"將有file not found錯誤。
uj5u.com熱心網友回復:
這與 C 或 Makefile 沒有任何關系。您正在使用該install實用程式來復制檔案,這就是該install實用程式的作業方式:它在命令列上獲取檔案并將它們復制到您指定的目錄中。它不會重新創建目錄結構。
如果您想保留目錄結構,則install_header需要修改您的配方來做到這一點,可能是通過撰寫install具有不同目錄的多個命令或直接呼叫cp。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/532239.html
標籤:C生成文件
