.c/.cpp文件编译成exe .mdp文件

本文介绍如何使用cl.exe编译器从命令行编译C/C++源代码,并通过添加system("pause");来防止命令窗口快速关闭。此外还提到了如何处理老版本的.mdp工程文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以在命令行中输入cl.exe XXX.c/XXX.cpp

若想屏幕不一闪而过,可以在程序中加入 system("pause");

 .mdp文件是老版本的工程文件,可以直接用VC打开,提示转换时确定即可

.PHONY: all clean reallyclean install # 工具链设置 CC := arm-linux-gnueabihf-gcc CXX := arm-linux-gnueabihf-g++ CFLAGS := -Wall -Wextra -O2 CXXFLAGS := $(CFLAGS) LDFLAGS := -lpthread -lrt # 目录设置 BIN_DIR := bin SRC_DIR := . INCLUDE_DIR := . LIB_DIR := # 需要以 C++ 方式编译的 C 文件(调用 C++ 代码的文件CPP_COMPAT_C_SRCS := $(SRC_DIR)/jt808/jt808.c # 普通 C 文件 C_SRCS := $(filter-out $(CPP_COMPAT_C_SRCS), $(shell find $(SRC_DIR) -type f -name "*.c")) CPP_SRCS := $(shell find $(SRC_DIR) -type f -name "*.cpp") # 对象文件列表 OBJS := $(patsubst $(SRC_DIR)/%.c,$(BIN_DIR)/%.o,$(C_SRCS)) \ $(patsubst $(SRC_DIR)/%.cpp,$(BIN_DIR)/%.o,$(CPP_SRCS)) \ $(patsubst $(SRC_DIR)/%.c,$(BIN_DIR)/%_cpp.o,$(CPP_COMPAT_C_SRCS)) # 头文件路径 INC_DIRS := $(shell find $(INCLUDE_DIR) -type f -name "*.h" -exec dirname {} \; | sort | uniq) INC_DIRS += $(INCLUDE_DIR)/../../../system/mdp/sample/common INC_FLAGS := $(addprefix -I,$(INC_DIRS)) # 库文件 LIBS := $(MDP_SHARED_LIBRARIES) \ $(MDP_CAMERA_LIBRARIES) \ $(MDP_PANEL_LIBRARIES) \ $(MDP_CAMERA_EXT_LIBRARIES) # 目标可执行文件 TARGET := $(BIN_DIR)/jt808_lib all: $(TARGET) $(TARGET): $(OBJS) @echo "Linking..." $(CXX) $(CXXFLAGS) $(INC_FLAGS) $^ -o $@ $(LIBS) $(LDFLAGS) -lstdc++ @echo "Build complete: $@" # 普通 C 文件编译(gcc) $(BIN_DIR)/%.o: $(SRC_DIR)/%.c | $(BIN_DIR) @echo "Compiling C file $<..." @mkdir -p $(@D) $(CC) $(CFLAGS) $(INC_FLAGS) -c $< -o $@ # C++ 文件编译(g++) $(BIN_DIR)/%.o: $(SRC_DIR)/%.cpp | $(BIN_DIR) @echo "Compiling C++ file $<..." @mkdir -p $(@D) $(CXX) $(CXXFLAGS) $(INC_FLAGS) -c $< -o $@ # 特殊处理:需要 C++ 编译的 C 文件(g++) $(BIN_DIR)/%_cpp.o: $(SRC_DIR)/%.c | $(BIN_DIR) @echo "Compiling C file $< as C++..." @mkdir -p $(@D) $(CXX) $(CXXFLAGS) $(INC_FLAGS) -x c++ -c $< -o $@ $(BIN_DIR): @mkdir -p $@ clean: @rm -rf $(BIN_DIR) reallyclean: clean @rm -f *~ *.orig install: $(TARGET) @cp $(TARGET) /usr/local/bin/ @echo "Installed to /usr/local/bin/$(notdir $(TARGET))" ./include/xvr_config.h:22:1: error: unknown type name ‘class’ class CXvrConfig ^~~~~ ./include/xvr_config.h:23:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token { ^ 根据以上 报错修改Makefile 文件现在只有/jt808/jt808.c 使用.cpp文件中的接口
最新发布
07-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值