1.关于GCC版本导致的差异--宏 -D

本文探讨了不同版本的GCC编译器在编译同一段代码时出现的差异及错误,通过三个具体实例展示了使用gcc、arm-linux-gcc与arm-linux-gnueabihf-gcc时的不同表现,并分析了可能的原因。

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

1.前言

GCC版本的差异.
root@ubuntu: gcc -v
    gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
root@ubuntu: arm-linux-gcc -v
    gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
root@ubuntu: arm-linux-gnueabihf-gcc -v
    gcc version 4.8.3 20140106 (prerelease) (crosstool-NG linaro-1.13.1-4.8-2014.01 - Linaro GCC 2013.11)

2.脚本

下面是一个Makefile脚本一段(定义VERSION),Makefile 写法跟shell有所差别:
$(CC) -DVERSION=\""$(shell cat version)"\" -o $@ $<

3.编译错误

1.使用gcc 编译:

root@ubuntu:# make
gcc  -DVERSION=\""(x86 Xinu) #51 (root@ubuntu) Mon Jun 20 21:15:05 CST 2016"\" -o main main.c

2.使用arm-linux-gcc编译:

root@ubuntu:# make
arm-linux-gcc  -DVERSION=\""(x86 Xinu) #52 (root@ubuntu) Mon Jun 20 21:16:51 CST 2016"\" -o main main.c
arm-none-linux-gnueabi-gcc: Xinu): No such file or directory
arm-none-linux-gnueabi-gcc: #52: No such file or directory
arm-none-linux-gnueabi-gcc: (root@ubuntu): No such file or directory
arm-none-linux-gnueabi-gcc: Mon: No such file or directory
arm-none-linux-gnueabi-gcc: Jun: No such file or directory
arm-none-linux-gnueabi-gcc: 20: No such file or directory
arm-none-linux-gnueabi-gcc: 21:16:51: No such file or directory
arm-none-linux-gnueabi-gcc: CST: No such file or directory
arm-none-linux-gnueabi-gcc: 2016": No such file or directory
<command-line>: warning: missing terminating " character
main.c: In function 'main':
main.c:7: error: missing terminating " character
main.c:7: error: expected expression before ')' token
make: *** [main] Error 1

3.使用arm-linux-gnueabihf-gcc编译:

root@ubuntu:# make
    arm-linux-gnueabihf-gcc -DVERSION=\""(x86 Xinu) #53 (root@ubuntu) Mon Jun 20 21:20:57 CST 2016"\" -o main main.c

PS:我们时常碰到这种编译器版本的问题(可以说是BUG吧)而摸不着头脑,很多时候就是这种情况。

4.执行结果

root@ubuntu:# ./main
    Version : (x86 Xinu) #54 (root@ubuntu) Mon Jun 20 21:26:33 CST 2016

5.附录

1.Makefile

#
# Make the Xinu configuration program
#

VERSION_FILE = version.h

CC = arm-linux-gnueabihf-gcc  #gcc  #arm-linux-gcc

all : main

VERSIONS : 
    $(shell cat define VERSION 	\""`cat version`"\"  > $(VERSION_FILE))

main :  main.c
    $(shell ./mkvers.sh)
    $(CC) -DVERSION=\""$(shell cat version)"\" -o $@ $<


clean : 
    rm -fr main *.bak version $(VERSION_FILE)

2.main.c

#include <stdio.h>

int main ()
{
    printf("Version : %s\n\r",VERSION);
}

3.mkvers.sh

if [ -f vn ]; then
    expr `cat vn` + 1 > vn
else
    echo 0 > vn
fi
if [ -z "$USER" ]; then
       USER=`whoami`
fi
HOST=`hostname`
VN=`cat vn`
echo  "(x86 Xinu) #$VN ("$USER"@"$HOST") "`date` > version
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
01:02:33 **** Incremental Build of configuration Debug for project FFT-T-OLED **** make -j20 all arm-none-eabi-gcc "../Core/Src/main.c" -mcpu=cortex-m3 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F103xB -c -I../Core/Inc -I../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I../Drivers/STM32F1xx_HAL_Driver/Inc -I../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I../Drivers/CMSIS/Include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"Core/Src/main.d" -MT"Core/Src/main.o" --specs=nano.specs -mfloat-abi=soft -mthumb -o "Core/Src/main.o" ../Core/Src/main.c: In function 'main': ../Core/Src/main.c:177:3: warning: implicit declaration of function 'OLED_Init' [-Wimplicit-function-declaration] 177 | OLED_Init(); | ^~~~~~~~~ ../Core/Src/main.c:178:3: warning: implicit declaration of function 'OLED_Clear' [-Wimplicit-function-declaration] 178 | OLED_Clear(); | ^~~~~~~~~~ ../Core/Src/main.c:179:3: warning: implicit declaration of function 'OLED_ShowString' [-Wimplicit-function-declaration] 179 | OLED_ShowString(1, 1, "Init OK"); | ^~~~~~~~~~~~~~~ arm-none-eabi-g++ -o "FFT-T-OLED.elf" @"objects.list" -mcpu=cortex-m3 -T"D:\DianSai\FFT-T-OLED\STM32F103C8TX_FLASH.ld" -Wl,-Map="FFT-T-OLED.map" -Wl,--gc-sections -static --specs=nano.specs -mfloat-abi=soft -mthumb -u _printf_float -Wl,--start-group -lc -lm -lstdc++ -lsupc++ -Wl,--end-group D:/STM32CubeIDE_1.17.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Core/Src/main.o: in function `FFT': D:/DianSai/FFT-T-OLED/Debug/../Core/Src/main.c:67: multiple definition of `FFT'; ./Core/Src/FFT.o:D:/DianSai/FFT-T-OLED/Debug/../Core/Src/FFT.c:13: first defined here collect2.exe: error: ld returned 1 exit status make: *** [makefile:88: FFT-T-OLED.elf] Error 1 "make -j20 all" terminated with exit code 2. Build might be incomplete. 01:02:37 Build Failed. 2 errors, 3 warnings. (took 4s.239ms)
06-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值