.c / .cpp 文件编译运行原理

本文详细介绍了源文件从预编译到链接的四个关键编译阶段:预编译、编译、汇编和链接,并解释了每个阶段产生的文件类型及主要任务。

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

源文件编译运行过程中,会经历四个阶段,分别是预编译,编译,汇编,链接。在不同的阶段会产生不同的文件,做不同的事情。

运行第 1 步:预编译,生成   .i 文件

预编译过程主要做 5 件事情:

1、删除#define 并完成文本替换,我们定义的宏就是在与编译阶段完成值替换的;

2、删除除 #pragma 以外的所有以# 开头的语句,包括#if 0、#end等;

3、递归展开#include<>文件。为什么成为递归呢?举个例子,在我们最熟悉的 #include<stdio.h>文件中,还包含着#include<crtdefs.h>头文件,而在#include <crtdefs.h>中又包含着#include <sal.h>头文件......

4、删除注释;

5、添加行号和文件标识。

 

运行第 2 步:编译,生成  .s  文件

编译过程主要做 5 件事情:

1、语法分析;

2、词法分析;

3、语义分析;

4、代码优化;

5、生成汇编指令。

 

运行第 3 步:汇编,生成  .o 文件

汇编的主要任务只有一件——翻译指令。汇编时会生成计算机语言,也就是 0 1 代码。

运行第 4 步:链接

链接主要做 4 件事情:

1、合并段和符号表;

2、解析符号;

3、分配地址和空间;

4、符号重定位——解决虚假地址的偏移问题。

 

 

 

.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
PS D:\mywork\mycode\ku> g++ main.cpp -o t1 D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x19): undefined reference to `Marvels::Infra::CLogger::getLevel() const' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x3f): undefined reference to `Marvels::Infra::CLogger::getLevel() const' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x78): undefined reference to `Marvels::Infra::CLogger::log(Marvels::Infra::LogLevel, char const*, int, char const*, char const*, ...) const' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x9d): undefined reference to `Marvels::Infra::CMd5::CMd5()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xa9): undefined reference to `Marvels::Infra::CMd5::init()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x107): undefined reference to `Marvels::Infra::CMd5::update(unsigned char const*, unsigned long long)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x117): undefined reference to `Marvels::Infra::CMd5::final(unsigned char*)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x14b): undefined reference to `Marvels::Infra::CMd5::hex(char*)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x19a): undefined reference to `Marvels::Infra::CMd5::~CMd5()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x1ce): undefined reference to `Marvels::Infra::CMd5::~CMd5()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x2b5): undefined reference to `Marvels::Infra::base64Encode(char*, char const*, int)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x34b): undefined reference to `Marvels::Infra::base64Decode(char*, char const*)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x3c4): undefined reference to `Marvels::Infra::CMutex::CMutex()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x43c): undefined reference to `Marvels::Infra::CMutex::~CMutex()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x45e): undefined reference to `Marvels::Infra::CMutex::~CMutex()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x488): undefined reference to `Marvels::Infra::CRecursiveMutex::CRecursiveMutex()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x4d8): undefined reference to `Marvels::Infra::CRecursiveMutex::~CRecursiveMutex()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x4fa): undefined reference to `Marvels::Infra::CRecursiveMutex::~CRecursiveMutex()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x524): undefined reference to `Marvels::Infra::CReadWriteMutex::CReadWriteMutex()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x5b8): undefined reference to `Marvels::Infra::CReadWriteMutex::~CReadWriteMutex()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x5eb): undefined reference to `Marvels::Infra::CReadWriteMutex::~CReadWriteMutex()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x63c): undefined reference to `Marvels::Infra::CSemaphore::signal()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x65f): undefined reference to `Marvels::Infra::CSemaphore::CSemaphore(int)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x683): undefined reference to `Marvels::Infra::CSemaphore::wait()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x6cf): undefined reference to `Marvels::Infra::CSemaphore::~CSemaphore()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x6f1): undefined reference to `Marvels::Infra::CSemaphore::~CSemaphore()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x734): undefined reference to `Marvels::Infra::CWaitGroup::done()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x76c): undefined reference to `Marvels::Infra::CWaitGroup::done()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x78a): undefined reference to `Marvels::Infra::CWaitGroup::CWaitGroup()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x7a2): undefined reference to `Marvels::Infra::CWaitGroup::add(int)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x7ee): undefined reference to `Marvels::Infra::CWaitGroup::wait()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x86b): undefined reference to `Marvels::Infra::CWaitGroup::~CWaitGroup()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x89e): undefined reference to `Marvels::Infra::CWaitGroup::~CWaitGroup()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x97f): undefined reference to `Marvels::Infra::CStrParser::CStrParser(char const*)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x992): undefined reference to `Marvels::Infra::CStrParser::locateString(char const*)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x9d6): undefined reference to `Marvels::Infra::CStrParser::~CStrParser()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0x9e7): undefined reference to `Marvels::Infra::CStrParser::~CStrParser()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xa70): undefined reference to `Marvels::Infra::StrConv::trim(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xade): undefined reference to `Marvels::Infra::StrConv::toUpper(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xbac): undefined reference to `Marvels::Infra::CTime::getCurrentTime()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xbcc): undefined reference to `Marvels::Infra::CTime::format(char*, char const*, int) const' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xc33): undefined reference to `Marvels::Infra::version()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xc85): undefined reference to `Marvels::Infra::CSockAddr::CSockAddr(char const*, unsigned short)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xcb1): undefined reference to `Marvels::Infra::CSockAddr::getIp[abi:cxx11]() const' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xce4): undefined reference to `Marvels::Infra::CSockAddr::getPort() const' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xd1e): undefined reference to `Marvels::Infra::CSockAddr::~CSockAddr()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xd43): undefined reference to `Marvels::Infra::CSockAddr::~CSockAddr()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xdbd): undefined reference to `Marvels::Infra::CThread::CThread(char const*, unsigned int)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xde3): undefined reference to `Marvels::Infra::CThread::start(std::function<void (void*)>, void*)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xdf9): undefined reference to `Marvels::Infra::CThread::sleep(unsigned int)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xe05): undefined reference to `Marvels::Infra::CThread::stop()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xe11): undefined reference to `Marvels::Infra::CThread::~CThread()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xe33): undefined reference to `Marvels::Infra::CThread::~CThread()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xedb): undefined reference to `Marvels::Infra::CThreadPool::instance()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xef0): undefined reference to `Marvels::Infra::CThreadPool::start(int)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xf13): undefined reference to `Marvels::Infra::CThreadPool::run(std::function<int ()>)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xf42): undefined reference to `Marvels::Infra::CThreadPool::run(std::function<int ()>)' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text+0xf5a): undefined reference to `Marvels::Infra::CThreadPool::stop()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text$_ZN7Marvels5Infra6CGuardC1ERNS0_6CMutexE[_ZN7Marvels5Infra6CGuardC1ERNS0_6CMutexE]+0x26): undefined reference to `Marvels::Infra::CMutex::enter()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text$_ZN7Marvels5Infra6CGuardD1Ev[_ZN7Marvels5Infra6CGuardD1Ev]+0x17): undefined reference to `Marvels::Infra::CMutex::leave()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text$_ZN7Marvels5Infra15CRecursiveGuardC1ERNS0_15CRecursiveMutexE[_ZN7Marvels5Infra15CRecursiveGuardC1ERNS0_15CRecursiveMutexE]+0x26): undefined reference to `Marvels::Infra::CRecursiveMutex::enter()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text$_ZN7Marvels5Infra15CRecursiveGuardD1Ev[_ZN7Marvels5Infra15CRecursiveGuardD1Ev]+0x17): undefined reference to `Marvels::Infra::CRecursiveMutex::leave()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text$_ZN7Marvels5Infra13CGuardReadingC1ERNS0_15CReadWriteMutexE[_ZN7Marvels5Infra13CGuardReadingC1ERNS0_15CReadWriteMutexE]+0x26): undefined reference to `Marvels::Infra::CReadWriteMutex::enterReading()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text$_ZN7Marvels5Infra13CGuardReadingD1Ev[_ZN7Marvels5Infra13CGuardReadingD1Ev]+0x17): undefined reference to `Marvels::Infra::CReadWriteMutex::leave()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text$_ZN7Marvels5Infra13CGuardWritingC1ERNS0_15CReadWriteMutexE[_ZN7Marvels5Infra13CGuardWritingC1ERNS0_15CReadWriteMutexE]+0x26): undefined reference to `Marvels::Infra::CReadWriteMutex::enterWriting()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.text$_ZN7Marvels5Infra13CGuardWritingD1Ev[_ZN7Marvels5Infra13CGuardWritingD1Ev]+0x17): undefined reference to `Marvels::Infra::CReadWriteMutex::leave()' D:/apply/Vscode/MSYS2/ucrt64/bin/../lib/gcc/x86_64-w64-mingw32/15.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\sdses\AppData\Local\Temp\ccAJdlRj.o:main.cpp:(.rdata$.refptr._ZN7Marvels5Infra7gloggerE[.refptr._ZN7Marvels5Infra7gloggerE]+0x0): undefined reference to `Marvels::Infra::glogger' collect2.exe: error: ld returned 1 exit status PS D:\mywork\mycode\ku>
07-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值