from makefile which i did not make it as a file

本文提供了一个实用的Makefile模板,该模板详细展示了如何通过Makefile自动化编译C和C++源文件,设置编译选项,管理依赖关系以及执行清理操作等关键任务。

it is very easy to start from google search engine that we can study a dozen of workable such files

key word makefile template there is very nice one from google doc

but it is not easy make non-innovation, non-creation non-new non-exciting things

note its better replace all indent with a tab



#
SAMPLE_NAME := lxi
SAMPLE_CSRC := $(wildcard *.c) 
SAMPLE_CXXSRC := $(wildcard *.cpp) 


SAMPLE_COBJS := ${SAMPLE_CSRC:.c=.o}
SAMPLE_CXXOBJS := ${SAMPLE_CXXSRC:.cpp=.o}
SAMPLE_OBJS := $(SAMPLE_CXXOBJS) $(SAMPLE_COBJS)


SAMPLE_INC_DIRS :=
SAMPLE_LIB_DIRS :=
SAMPLE_LIBS := 
###libcutils
CPPFLAGS += $(foreach includedir, $(SAMPLE_INC_DIRS),-I$(includedir))
LDFLAGS += $(foreach librarydir, $(SAMPLE_LIB_DIRS),-L$(librarydir)) 
LDFLAGS += $(foreach library, $(SAMPLE_LIBS),-l$(library)) 
CPPFLAGS += -std=c++0x -w -pthread -g
LDFLAGS += -lm
.PHONY: depend clean all distclean
all:    $(SAMPLE_NAME)
@echo  Simple compiler named something has been compiled
$(SAMPLE_MKDIRBIN)
mv ./$(SAMPLE_NAME) $(SAMPLE_BIN)


$(SAMPLE_NAME): $(SAMPLE_OBJS)
$(LINK.cc) $(SAMPLE_OBJS) -o $(SAMPLE_NAME)

SAMPLE_BIN := ../bin/
SAMPLE_MKDIRBIN := mkdir -p $(SAMPLE_BIN)
SAMPLE_OUT := ../out/
SAMPLE_MKDIROUT := mkdir -p $(SAMPLE_OUT)


clean:
@- $(RM) -f $(SAMPLE_NAME).tar.gz
@- $(RM) -rf $(SAMPLE_BIN)
@- $(RM) -rf $(SAMPLE_OUT)
@- $(RM) $(SAMPLE_NAME)
@- $(RM) $(SAMPLE_OBJS)
@- $(RM) *.d
distclean: clean
run: all
@echo Running test case....
$(SAMPLE_BIN)$(SAMPLE_NAME)
tarball: $(SAMPLE_NAME)
$(SAMPLE_MKDIROUT)
tar -czf ./* $(SAMPLE_NAME).tar.gz
disp:
@echo $(SAMPLE_OBJS)


define OBJECT_DEPENDS_ON_CORRESPONDING_HEADER
$(1) : ${1:.o=.h}
endef
$(foreach object_file,$(program_OBJS),$(eval $(call OBJECT_DEPENDS_ON_CORRESPONDING_HEADER,$(object_file))))


depend:
makedepend -- $(CPPFLAGS) $(CFLAGS) -- $(SAMPLE_CSRCS)
# Don't place anything below this line, since
# the make depend program will overwrite it
# DO NOT DELETE THIS LINE -- make depend depends on it.

Make Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. -- The C compiler identification is GNU 7.5.0 -- The CXX compiler identification is GNU 7.5.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done Build type: Release -- Performing Test COMPILER_SUPPORTS_CXX11 -- Performing Test COMPILER_SUPPORTS_CXX11 - Success -- Performing Test COMPILER_SUPPORTS_CXX0X -- Performing Test COMPILER_SUPPORTS_CXX0X - Success -- Using flag -std=c++11. -- Found OpenCV: /usr/local (found suitable version "4.2.0", minimum required is "4.2") OPENCV VERSION: 4.2.0 CMake Warning at CMakeLists.txt:43 (find_package): By not providing "Findrealsense2.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "realsense2", but CMake did not find one. Could not find a package configuration file provided by "realsense2" with any of the following names: realsense2Config.cmake realsense2-config.cmake Add the installation prefix of "realsense2" to CMAKE_PREFIX_PATH or set "realsense2_DIR" to a directory containing one of the above files. If "realsense2" provides a separate development package or SDK, be sure it has been installed. CMake Error at CMakeLists.txt:116 (add_subdirectory): add_subdirectory given source "Thirdparty/g2o" which is not an existing directory. -- Configuring incomplete, errors occurred! See also "/home/robot/XTDrone/sensing/slam/vslam/ORB_SLAM3/build/CMakeFiles/CMakeOutput.log". make: *** 没有指明目标并且找不到 makefile。 停止。 ./build.sh: 第 9 行: cd: ../../g2o: 没有那个文件或目录 Configuring and building Thirdparty/g2o ... CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. Build type: Release -- Using flag -std=c++11. OPENCV VERSION: 4.2.0 CMake Warning at CMakeLists.txt:43 (find_package): By not providing "Findrealsense2.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "realsense2", but CMake did not find one. Could not find a package configuration file provided by "realsense2" with any of the following names: realsense2Config.cmake realsense2-config.cmake Add the installation prefix of "realsense2" to CMAKE_PREFIX_PATH or set "realsense2_DIR" to a directory containing one of the above files. If "realsense2" provides a separate development package or SDK, be sure it has been installed. CMake Error at CMakeLists.txt:116 (add_subdirectory): add_subdirectory given source "Thirdparty/g2o" which is not an existing directory. -- Configuring incomplete, errors occurred! See also "/home/robot/XTDrone/sensing/slam/vslam/ORB_SLAM3/build/CMakeFiles/CMakeOutput.log". make: *** 没有指明目标并且找不到 makefile。 停止。 ./build.sh: 第 18 行: cd: ../../Sophus: 没有那个文件或目录 Configuring and building Thirdparty/Sophus ... CMake Error: The source directory "/home/robot/XTDrone/sensing/slam/vslam/ORB_SLAM3/build/build" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI. make: *** 没有指明目标并且找不到 makefile。 停止。 Uncompress vocabulary ... Configuring and building ORB_SLAM3 ... mkdir: 无法创建目录"build": 文件已存在 CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 2.8.12 will be removed from a future version of CMake. Update the VERSION argument <min> value or use a ...<max> suffix to tell CMake that the project does not need compatibility with older versions. Build type: Release -- Using flag -std=c++11. OPENCV VERSION: 4.2.0 CMake Warning at CMakeLists.txt:43 (find_package): By not providing "Findrealsense2.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "realsense2", but CMake did not find one. Could not find a package configuration file provided by "realsense2" with any of the following names: realsense2Config.cmake realsense2-config.cmake Add the installation prefix of "realsense2" to CMAKE_PREFIX_PATH or set "realsense2_DIR" to a directory containing one of the above files. If "realsense2" provides a separate development package or SDK, be sure it has been installed. CMake Error at CMakeLists.txt:116 (add_subdirectory): add_subdirectory given source "Thirdparty/g2o" which is not an existing directory. -- Configuring incomplete, errors occurred! See also "/home/robot/XTDrone/sensing/slam/vslam/ORB_SLAM3/build/CMakeFiles/CMakeOutput.log". make: *** 没有指明目标并且找不到 makefile。 停止。
最新发布
07-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值