Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将makefile项目转换为CMake_Makefile_Cmake - Fatal编程技术网

将makefile项目转换为CMake

将makefile项目转换为CMake,makefile,cmake,Makefile,Cmake,今天,我得到了一个带有makefile的项目来编译它,但不幸的是,我无法在Windows上运行makefile。因此,我开始将其转换为CMake,但由于我对makefile没有太多的了解,因此无法正确理解以下代码试图做什么,也无法“模拟”CMake中的行为 因此,我遇到问题的代码如下: # -- src and obj List ---------- SRC = $(addprefix ${SRC_PATH}/, $(FILE)) OBJ = $(addprefix ${OBJ_PATH}/,

今天,我得到了一个带有
makefile
的项目来编译它,但不幸的是,我无法在
Windows
上运行
makefile
。因此,我开始将其转换为
CMake
,但由于我对
makefile
没有太多的了解,因此无法正确理解以下代码试图做什么,也无法“模拟”CMake中的行为

因此,我遇到问题的代码如下:

# -- src and obj List ----------
SRC = $(addprefix ${SRC_PATH}/, $(FILE))
OBJ = $(addprefix ${OBJ_PATH}/, $(addsuffix .o, $(basename $(FILE))))

# -- Base rules ----------
$(OBJ_PATH)/%.o : $(SRC_PATH)/%.c
        $(CC) $(CFLAGS) -c $< -o $@

#-----Main rule ----------
$(EXE_PATH)/$(PRODUCT): $(OBJ)
    $(CC) -o $@ $^ $(LDFLAGS) $(OPTFLAGS) $(CFG) $(INC) $(LIB) -lm

# -- Other stuff ----------
depend:
    makedepend $(CFLAGS) -Y $(SRC)
#--src和obj列表----------
SRC=$(addprefix${SRC_PATH}/,$(文件))
OBJ=$(addprefix${OBJ_PATH}/,$(addsuffix.o,$(basename$(FILE)))
#--基本规则----------
$(对象路径)/%.o:$(SRC\u路径)/%.c
$(CC)$(CFLAGS)-c$<-o$@
#-----主要规则----------
$(执行路径)/$(产品):$(OBJ)
$(CC)-o$@$^$(LDFLAGS)$(OPTFLAGS)$(CFG)$(INC)$(LIB)-lm
#--其他东西----------
依赖:
makedepend$(CFLAGS)-Y$(SRC)

有人能给我一些关于如何转换这个的见解吗?特别是在什么方面,你可能想使用Cygwin,这取决于你的最终目标,你可以在Windows上使用makefiles。您可能应该从阅读GNU make(或任何make)手册开始。这看起来像是处理依赖关系的样板代码,CMake会自动执行。逐行翻译毫无意义。如果它是一个简单的项目,那么您只需要一个源代码列表、输出的名称和位置,以及编译器和链接器的标志。有了这些,从头开始创建一个CMakeLists.txt。如果它很复杂,请花一些时间学习高级
make
语法。