c++ - 如何将此 Makefile 转换为 CMakeList.txt?

标签 c++ makefile cmake

我对 Makefile 和 CMake 都不熟悉,我想将这个 3rd-party Makefile 转换为 CMakeList.txt,以便这个 3rd-party 代码可以用最新的 DLib 代码编译,但我不知道如何。

我只知道一些基本的CMake命令,但是这个文件有很多标志和命令选项,我现在感觉很无能。

CXX = g++

CXXFLAGS = -g -I./include -I./src/dlib/all/source.cpp -ljpeg -mavx -lm -lpthread -lX11 -DDLIB_HAVE_BLAS -DNDEBUG  -DDLIB_JPEG_SUPPORT -DDLIB_HAVE_AVX  -O3 `pkg-config --cflags opencv `

LDFLAGS = -ljpeg -mavx -lm -lpthread -lX11 `pkg-config --libs opencv` -DDLIB_HAVE_BLAS -DNDEBUG  -DDLIB_JPEG_SUPPORT -DDLIB_HAVE_AVX  -O3

all: bin/oic

bin/oic: obj/dlib.o obj/faceDetection.o obj/pupilDetection.o obj/kalmanFilters.o obj/util.o obj/oic.o
    $(CXX) -o $@ $^ $(LDFLAGS)

# Should use findpackage(DLib) instead
#obj/dlib.o: ./src/dlib/all/source.cpp
#obj/dlib.o: ../../Dlib/dlib-19.7/dlib/all/source.cpp
#   mkdir -p obj bin
#   $(CXX) -c $(CXXFLAGS) -o $@ $<

obj/faceDetection.o: ./src/faceDetection.cpp
    $(CXX) -c $(CXXFLAGS) -o $@ $<

obj/pupilDetection.o: ./src/pupilDetection.cpp
    $(CXX) -c $(CXXFLAGS) -o $@ $<

obj/kalmanFilters.o: ./src/kalmanFilters.cpp
    $(CXX) -c $(CXXFLAGS) -o $@ $<

obj/util.o: ./src/util.cpp
    $(CXX) -c $(CXXFLAGS) -o $@ $<

obj/oic.o: ./src/oic.cpp
    $(CXX) -c $(CXXFLAGS) -o $@ $<


.PHONY: all oic

clean:
    rm -rf obj/*.o
    rm -rf bin/oic

非常感谢。

最佳答案

这里有一些建议可以帮助您走上正轨:

关于c++ - 如何将此 Makefile 转换为 CMakeList.txt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46645730/

相关文章:

c++ - 即使包含库也无法将 curlpp 与 Xcode 一起使用

c++ - CMake "clang++ is not able compile a simple test program"(软呢帽 20)

c++ - 编译器对析构函数省略的自由度是多少?

c++ - 标准布局和继承

c++ - 如何使用 C++11 中的函数式编程从 map 中获取键?

c++ - 使用随机纹理 ID 可以吗?

go - Makefile执行: permission denied

c++ - Makefile 项目 - 通过 "-j"参数防止构建失败

c++ - CXX 编译器标识未知

c - 此函数声明的预期符号问题