【发布时间】:2017-10-09 11:47:29
【问题描述】:
我对 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
非常感谢。
【问题讨论】:
-
this file has a lot of flags and command options, I'm feel very clueless now.- 我们不是代码编写服务。在 Makefile 中取一个命令,尝试将其转换为 CMake,以防遇到困难使用搜索。如果搜索没有帮助,请在此处询问具体命令。 -
@Tsyvarev,OP 正在寻找
entry point。为什么不给他/她一些提示呢?他/她仍然必须自己找出完整的解决方案。 OP 可能处于没有时间从头到尾学习 CMake 的情况。 -
当然我不是说 SO 是一个代码编写服务,很抱歉无意中让你有这种感觉。事实上,@Angew 的回答确实是一种非常合适的回答问题的方式。至少我没有问:“如何在 C++ 中进行冒泡排序”然后woola 有人提供了一个完全运行的代码(您可以在 SO 中搜索这些情况)。我清楚地说“我一无所知”,并且提供一些线索足以让我将响应标记为答案。