• 关于二十七期打榜排名分数相同问题的疑问
     注意到华为算法精英实战营第二十七期比赛中,有多位参赛者提交的作品最终得分完全相同,这一情况引发了一些疑问,因为根据我个人的线上提交测试经验,程序关键部分即使进行细微修改,得分通常也会随之变化,极少出现完全一致的情况。鉴于上述测试经验与当前观察到的现象存在显著差异,我恳请主办方核查这些得分高度雷同的参赛作品及其提交者身份是否存在关联性,以确保比赛的公平公正。  
  • [问题求助] 第二十七期 process run timeout 报错
    试了很多次要么报错general_error, 要么报错process run timeout。 感觉是线上环境除了问题,请官方检查一下判题目器,或者给出一个可提交通过的样例。
  • [技术干货] 'inet_addr': Use inet_pton() or InetPton() instead
    这个警告是因为 inet_addr() 是旧版 WinSock API,已被标记为废弃(deprecated),微软推荐使用更安全的 InetPton()(Windows)或跨平台的 inet_pton()(POSIX)替代。以下是解决方案:方法 1:使用 InetPton()(推荐,Windows 专用)InetPton() 是 inet_addr() 的现代替代品,支持 IPv4 和 IPv6,且能检测无效 IP 格式。示例代码#include <iostream> #include <winsock2.h> #include <ws2tcpip.h> // 需要包含此头文件 #pragma comment(lib, "ws2_32.lib") bool IsNetworkAvailable() { WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { return false; } SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock == INVALID_SOCKET) { WSACleanup(); return false; } // 设置超时(可选) DWORD timeout = 3000; // 3秒 setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (const char*)&timeout, sizeof(timeout)); setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (const char*)&timeout, sizeof(timeout)); // 使用 InetPton 替代 inet_addr sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_port = htons(53); if (InetPtonA(AF_INET, "8.8.8.8", &addr.sin_addr) != 1) { closesocket(sock); WSACleanup(); return false; // IP 格式无效 } bool isConnected = (connect(sock, (sockaddr*)&addr, sizeof(addr)) == 0); closesocket(sock); WSACleanup(); return isConnected; } int main() { if (IsNetworkAvailable()) { std::cout << "Network is available.\n"; } else { std::cout << "Network may be down or restricted.\n"; } return 0; } 关键改进更安全的 IP 解析:InetPton() 能检测无效 IP(如 "256.1.1.1"),而 inet_addr() 会静默返回 INADDR_NONE。支持 IPv6:改用 AF_INET6 和 InetPtonW()(宽字符版)即可支持 IPv6。方法 2:使用 inet_pton()(跨平台,POSIX 标准)如果代码需要跨平台(Linux/macOS/Windows),可以使用 inet_pton()(需定义 _WIN32_WINNT >= 0x0600 或包含 <ws2tcpip.h>)。示例代码#include <iostream> #include <winsock2.h> #include <ws2tcpip.h> // 必须包含此头文件 #pragma comment(lib, "ws2_32.lib") bool IsNetworkAvailable() { WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { return false; } SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock == INVALID_SOCKET) { WSACleanup(); return false; } sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_port = htons(53); // 使用 inet_pton(跨平台) if (inet_pton(AF_INET, "8.8.8.8", &addr.sin_addr) != 1) { closesocket(sock); WSACleanup(); return false; // IP 格式无效 } bool isConnected = (connect(sock, (sockaddr*)&addr, sizeof(addr)) == 0); closesocket(sock); WSACleanup(); return isConnected; } 方法 3:临时禁用警告(不推荐)如果暂时不想修改代码,可以定义 _WINSOCK_DEPRECATED_NO_WARNINGS 来屏蔽警告:#define _WINSOCK_DEPRECATED_NO_WARNINGS #include <winsock2.h> // 其余代码不变... 缺点:只是隐藏警告,并未解决潜在的安全问题。总结方法适用场景优点缺点InetPton()Windows 专用安全、支持 IPv4/IPv6仅限 Windowsinet_pton()跨平台标准 POSIX,兼容 Linux/macOS需确保头文件正确禁用警告临时兼容旧代码快速解决编译警告不推荐长期使用最佳实践Windows 优先用 InetPton()(更现代)。跨平台代码用 inet_pton()(需检查平台兼容性)。避免 inet_addr(),因为它无法处理 IPv6 且不检查无效 IP。
  • [技术干货] C++ 在服务器连接失败时,判断下网络是否正常
    在 C++ 中,当服务器连接失败时,判断网络是否正常通常需要结合多种方法,因为单一的连接失败可能由多种原因导致(如服务器宕机、网络中断、防火墙阻止等)。以下是几种常见的检测方法及实现思路:1. 尝试连接一个已知可用的公共服务器如果自定义服务器连接失败,可以尝试连接一个高可用的公共服务器(如 8.8.8.8:53(Google DNS)或 1.1.1.1:53(Cloudflare DNS)),以确认本地网络是否通畅。示例代码(使用 Socket)#include <iostream> #include <winsock2.h> // Windows // #include <sys/socket.h> // Linux (需替换相关函数) #pragma comment(lib, "ws2_32.lib") bool IsNetworkAvailable() { WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { return false; // Winsock 初始化失败 } SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock == INVALID_SOCKET) { WSACleanup(); return false; } // 设置超时(可选) DWORD timeout = 3000; // 3秒 setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (const char*)&timeout, sizeof(timeout)); setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (const char*)&timeout, sizeof(timeout)); // 尝试连接 Google DNS (8.8.8.8:53) sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_port = htons(53); addr.sin_addr.s_addr = inet_addr("8.8.8.8"); bool isConnected = (connect(sock, (sockaddr*)&addr, sizeof(addr)) == 0); closesocket(sock); WSACleanup(); return isConnected; } int main() { if (IsNetworkAvailable()) { std::cout << "Network is available.\n"; } else { std::cout << "Network may be down or restricted.\n"; } return 0; } 关键点如果连接公共服务器成功,说明本地网络正常,可能是目标服务器的问题。如果连接失败,可能是本地网络中断或防火墙阻止。2. 使用系统 API 检测网络状态Windows通过 InternetGetConnectedState(需 #include <wininet.h>)检查网络连接状态(但可能不准确,仅作参考)。#include <wininet.h> #pragma comment(lib, "wininet.lib") bool IsWindowsNetworkAvailable() { DWORD flags = 0; return InternetGetConnectedState(&flags, 0); } Linux执行 ping 命令或检查 /sys/class/net/ 下的网络接口状态。#include <cstdlib> bool IsLinuxNetworkAvailable() { return system("ping -c 1 8.8.8.8 > /dev/null 2>&1") == 0; } 3. 检查本地网络接口Windows: 使用 GetAdaptersAddresses(<iphlpapi.h>)遍历网卡,确认是否有活动的网络接口。Linux: 解析 /proc/net/route 或调用 ifconfig/ip 命令。示例(Windows)#include <iphlpapi.h> #include <iostream> #pragma comment(lib, "iphlpapi.lib") bool HasActiveNetworkInterface() { PIP_ADAPTER_ADDRESSES adapters = nullptr; ULONG size = 0; // 第一次调用获取缓冲区大小 if (GetAdaptersAddresses(AF_UNSPEC, 0, nullptr, nullptr, &size) != ERROR_BUFFER_OVERFLOW) { return false; } adapters = (PIP_ADAPTER_ADDRESSES)malloc(size); if (GetAdaptersAddresses(AF_UNSPEC, 0, nullptr, adapters, &size) != NO_ERROR) { free(adapters); return false; } bool hasActive = false; for (PIP_ADAPTER_ADDRESSES adapter = adapters; adapter != nullptr; adapter = adapter->Next) { if (adapter->OperStatus == IfOperStatusUp) { hasActive = true; break; } } free(adapters); return hasActive; } 4. 综合判断逻辑当服务器连接失败时,可以按以下顺序排查:检查本地网络接口:是否有活动的网卡?尝试连接公共服务器:确认是否能访问外网。检查目标服务器状态:可能是服务器宕机或端口未开放。示例流程void HandleServerConnectionFailure() { if (!HasActiveNetworkInterface()) { std::cerr << "Error: No active network interface detected.\n"; return; } if (!IsNetworkAvailable()) { std::cerr << "Error: Local network is down or restricted.\n"; return; } std::cerr << "Error: Target server may be unreachable or down.\n"; } 注意事项超时设置:网络检测操作应设置超时,避免长时间阻塞。权限问题:某些系统 API 或命令可能需要管理员权限。跨平台兼容性:Windows 和 Linux 的实现方式不同,需用预编译指令区分(如 #ifdef _WIN32)。防火墙/代理:即使网络正常,防火墙或代理也可能阻止连接。总结优先检测公共服务器(如 8.8.8.8)是最简单可靠的方法。结合系统 API 和网络接口检查可以更全面地诊断问题。在服务器连接失败时,明确区分是本地网络问题还是目标服务器问题,有助于快速定位故障。
  • [技术干货] C++ string 转 wstring CP_ACP 和 CP_UTF8的区别
    在 C++ 中,将 std::string 转换为 std::wstring 时,使用 CP_ACP 和 CP_UTF8 作为代码页参数的主要区别在于源字符串的编码假设和转换结果的正确性。以下是详细分析:1. CP_ACP(系统默认ANSI代码页)用途:假设 std::string 是基于当前系统默认的ANSI代码页(如Windows下的中文环境可能是GBK,英文环境可能是Windows-1252)。行为:调用 MultiByteToWideChar(CP_ACP, ...),将多字节字符按系统ANSI代码页解释并转换为宽字符(UTF-16)。如果 std::string 实际是UTF-8编码,但错误使用 CP_ACP,会导致转换后的 std::wstring 出现乱码(因为UTF-8字节序列会被错误解析为ANSI字符)。适用场景:源字符串确实是当前系统ANSI代码页编码的(例如从旧版API或文件读取的ANSI文本)。不推荐用于处理UTF-8文本。2. CP_UTF8(UTF-8编码)用途:明确指定 std::string 是UTF-8编码。行为:调用 MultiByteToWideChar(CP_UTF8, ...),正确解析UTF-8字节序列并转换为UTF-16。如果 std::string 不是合法的UTF-8,转换可能失败(返回0,可通过 GetLastError() 检查)。适用场景:源字符串是UTF-8编码(如现代文本文件、网络数据、JSON/XML等)。需要跨平台或国际化支持时,UTF-8是更通用的选择。关键区别总结特性CP_ACPCP_UTF8源字符串编码假设系统默认ANSI代码页(如GBK、Windows-1252)UTF-8转换结果依赖系统环境,可能乱码正确转换UTF-8到UTF-16错误风险高(若实际是UTF-8)低(需确保输入是合法UTF-8)跨平台兼容性差(依赖系统代码页)好(UTF-8是标准)代码示例#include <string> #include <windows.h> std::wstring StringToWString(const std::string& str, UINT codePage) { if (str.empty()) return L""; int size = MultiByteToWideChar(codePage, 0, str.c_str(), -1, nullptr, 0); if (size == 0) return L""; // 转换失败 std::wstring wstr(size, L'\0'); MultiByteToWideChar(codePage, 0, str.c_str(), -1, &wstr[0], size); return wstr; } // 使用示例 std::string ansiStr = "ANSI文本"; // 假设是当前系统ANSI编码 std::string utf8Str = u8"UTF-8文本"; // 实际UTF-8编码 std::wstring wstr1 = StringToWString(ansiStr, CP_ACP); // 正确(假设ansiStr确实是ANSI) std::wstring wstr2 = StringToWString(utf8Str, CP_UTF8); // 正确 std::wstring wstr3 = StringToWString(utf8Str, CP_ACP); // 乱码! 最佳实践明确编码来源:如果数据来自文件/网络且未明确编码,优先假设为UTF-8(现代标准)。旧系统或本地化文本可能是ANSI,需确认环境。错误处理:检查 MultiByteToWideChar 的返回值,处理非法编码。跨平台考虑:在非Windows系统上,使用 std::wstring_convert(C++11,已弃用)或第三方库(如ICU、iconv)。为什么推荐 CP_UTF8?确定性:UTF-8是明确的编码标准,而 CP_ACP 依赖运行环境。国际化:UTF-8支持所有Unicode字符,避免ANSI的局限性。未来兼容性:新系统/API更倾向于UTF-8。除非明确需要处理遗留ANSI文本,否则应优先使用 CP_UTF8。
  • 不知CodeArts IDE的C++怎么用图形界面编写程序
        我用Visual Studio 2013 的C#编写了一个《图书借管理系统》,使用的是SQL Server数据库,现在想改用华为的CodeArts IDE的C++来编写,结果打开界面后,没有象Visual Studio 2013 C#那样直接添加窗体、按键等控件的界面,我也通过有deepseek咨询了,它说要安装什么 Qt 插件,结果我在网上一搜,qt是要钱的。我想算了,还是继续用Visual Studio吧,大不了安装个2022版的。    又过了一个星期,我不死心,还是想问一下,华为的CodeArts IDE的C++有没有象Visual Studio 2013 C#那样可以直接把控件拖到平台来编程,或者说如何设置才能达到这个目的。    望能给个答复为谢!
  • 第27期是不是缺少样例数据?
    比赛页只提供了这三个文件,而28期提供了,这是啥情况?
  • [问题求助] 第二十八期-Advanced Computation Architecture:demo示例
    能否提供可以编译通过的demo,task2文件中说需要遵循task2/PredictionAlgorithm的目录结构,而编译运行环境说明又说代码需要位于一级目录,搞不清楚需要提供哪些文件,目录结构又是怎样的,从而可以使得编译通过。
  • [技术干货] Rust 因为其内存安全的优势,正在逐渐代替 C/C++
    Rust 相比 C/C++ 在内存安全方面的优势,以及大厂选择 Rust 替代 C/C++ 的原因,可以从技术特性、安全模型、生态发展和业务需求等角度深入分析:一、Rust 如何实现内存安全?Rust 通过以下核心机制从语言层面杜绝内存安全问题:1. 所有权(Ownership)系统核心规则:每个值有唯一所有者:所有权转移时,旧所有者失效(类似“移动语义”)。离开作用域时自动释放内存:无需手动调用 free 或 delete。示例:let s1 = String::from("hello"); let s2 = s1; // 所有权从 s1 转移到 s2,s1 失效 // println!("{}", s1); // 编译错误:s1 已失效 优势:避免悬垂指针(Dangling Pointer)和重复释放(Double Free)。2. 借用(Borrowing)与生命周期(Lifetime)借用规则:可变借用与不可变借用互斥:同一时间只能有一个可变借用或多个不可变借用。生命周期标注:编译器强制检查引用的有效性,确保引用不会超出数据的作用域。示例:fn print_str(s: &str) { println!("{}", s); } let s = String::from("world"); print_str(&s); // 不可变借用,s 仍可用 优势:避免空指针解引用(Null Pointer Dereference)和数据竞争(Data Race)。3. 类型系统与模式匹配枚举(Enum)与模式匹配:强制处理所有可能状态,避免未定义行为。enum Option<T> { Some(T), None, } let x: Option<i32> = Some(5); match x { Some(v) => println!("Value: {}", v), None => println!("No value"), // 必须处理 None 情况 } 优势:杜绝空指针异常(类似 C++ 的 std::optional,但更严格)。4. 无垃圾回收(GC)的内存安全Rust 通过所有权和借用规则在编译时管理内存,无需运行时 GC,兼顾性能和安全性。二、大厂为何选择 Rust 替代 C/C++?1. 降低安全漏洞风险C/C++ 的痛点:内存错误(如缓冲区溢出、空指针解引用)是安全漏洞的主要来源(如 Heartbleed、Log4j 等)。Rust 的优势:从语言层面消除内存安全问题,减少安全审计成本。案例:Mozilla Firefox:用 Rust 重写部分关键组件(如 CSS 引擎),减少崩溃和漏洞。Microsoft:在 Windows 内核和安全组件中引入 Rust,降低攻击面。2. 提升开发效率与可维护性C/C++ 的痛点:手动内存管理、复杂指针操作和头文件依赖导致开发效率低。Rust 的优势:现代工具链:Cargo 包管理器、内置测试框架、文档生成工具。清晰的错误处理:通过 Result 和 Option 强制处理错误,避免未捕获异常。案例:Dropbox:用 Rust 重写文件同步核心模块,减少 30% 的代码量。Discord:用 Rust 重写后端服务,提升性能并降低资源占用。3. 性能与安全兼顾C/C++ 的优势:直接内存操作和低级控制,适合高性能场景。Rust 的优势:零成本抽象:高级特性(如迭代器、闭包)编译后与 C 性能相当。无 GC 停顿:适合实时系统(如游戏引擎、嵌入式设备)。案例:Figma:用 Rust 重写渲染引擎,性能提升 10 倍。AWS Lambda:用 Rust 实现高性能运行时,冷启动时间缩短。4. 生态与社区支持Rust 的生态:WebAssembly:Rust 是 WebAssembly 的首选语言之一,用于高性能前端开发。区块链:Solana、Polkadot 等区块链项目用 Rust 实现。操作系统:Redox OS、Tock OS 等系统级项目。大厂投入:Google:探索 Rust 替代 Android 系统中的 C/C++。Amazon:在 AWS 中广泛使用 Rust,并开源工具链。三、Rust 与 C/C++ 的对比总结维度RustC/C++内存安全编译时强制检查,杜绝内存错误依赖开发者手动管理,易出错性能零成本抽象,与 C 相当直接内存操作,高性能开发效率现代工具链、清晰错误处理手动内存管理、复杂构建系统生态WebAssembly、区块链、系统级开发游戏引擎、操作系统、嵌入式学习曲线较陡峭(所有权、生命周期)较陡峭(指针、内存管理)四、结论Rust 通过所有权系统、借用规则和生命周期检查,从语言层面解决了 C/C++ 的内存安全问题,同时保持高性能和低级控制能力。大厂选择 Rust 的核心原因包括:降低安全风险:减少内存错误导致的漏洞。提升开发效率:现代工具链和清晰的错误处理。性能与安全兼顾:适合高性能场景(如系统级开发、区块链)。生态与社区支持:广泛用于新兴领域(如 WebAssembly、区块链)。尽管 Rust 的学习曲线较陡峭,但其长期收益(如安全性、可维护性)使其成为 C/C++ 的有力替代者,尤其在安全敏感和高性能要求的场景中。
  • [传感器适配] 摄像头程序在编译机上编译通过但是在MDC上显示Segmentation fault
    产品名称:MDC 610软件版本:MDC 610 1.99.102-0000000     问题现象(问题描述):摄像头程序在编译机上编译通过但是在MDC上显示Segmentation fault故障后已采取的措施:/示例代码:如下这是.c文件#include <iostream>#include <vector>#include <cstdint>#include <cstring>#include "camera.h"       // 声明 CameraInit、CameraWaitEvents、CameraGetData、CameraData#include "ascend_hal.h"   // 声明全局 halMbufFreeusing mdc::camera::CameraInit;using mdc::camera::CameraWaitEvents;using mdc::camera::CameraGetData;using mdc::camera::CameraData;int main(int argc, char* argv[]){    // 默认参数    uint32_t camId       = 21;    int32_t  timeoutWait = 1000;    int32_t  timeoutGet  = 1000;    // 简单命令行解析    for (int i = 1; i < argc; ++i) {        if (std::strcmp(argv[i], "--camera") == 0 && i+1 < argc) {            camId = static_cast<uint32_t>(std::stoi(argv[++i]));        }        else if (std::strcmp(argv[i], "--wait-timeout") == 0 && i+1 < argc) {            timeoutWait = std::stoi(argv[++i]);        }        else if (std::strcmp(argv[i], "--get-timeout") == 0 && i+1 < argc) {            timeoutGet = std::stoi(argv[++i]);        }        else {            std::cerr << "Usage: " << argv[0]                      << " [--camera ID] [--wait-timeout ms] [--get-timeout ms]\n";            return -1;        }    }    // 1. 初始化摄像头    std::vector<uint32_t> initList = { camId };    int32_t ret = CameraInit(initList);    if (ret != 0) {        std::cerr << "CameraInit failed: " << ret << "\n";        return -1;    }    // 2. 等待事件    auto ready = CameraWaitEvents(timeoutWait);    if (ready.empty()) {        std::cerr << "No camera event\n";        return -1;    }    // 3. 获取数据    std::vector<CameraData> frames;    ret = CameraGetData(camId, frames, timeoutGet);    if (ret != 0 || frames.empty()) {        std::cerr << "CameraGetData failed: " << ret << "\n";        return -1;    }    // 4. 打印第一帧信息 —— 替换下列字段为实际名称    CameraData &f = frames[0];    std::cout << "Camera ID:   " << /* f.realCameraIdField   */ 0 << "\n";    std::cout << "Timestamp:   " << /* f.realTimestampField  */ 0 << "\n";    std::cout << "Image size:  " << /* f.realImgSizeField    */ 0 << "\n";    std::cout << "Meta size:   " << /* f.realMetaSizeField   */ 0 << "\n";    // 5. (可选)解析 metaBuf    // const uint8_t* meta = f.realMetaBufPtr;   // TODO    // size_t        msize = f.realMetaSizeField; // TODO    // for (size_t off = 0; off + 1 < msize; off += 2) {    //     uint16_t word = (uint16_t(meta[off]) << 8) | uint16_t(meta[off+1]);    //     std::cout << "0x" << std::hex << word << " ";    // }    // std::cout << std::dec << "\n";    // 6. 释放缓冲    for (auto &d : frames) {        // TODO: 替换为实际 buf 指针成员        // ::halMbufFree(d.realImgBufPtr);        // ::halMbufFree(d.realMetaBufPtr);    }    return 0;}这是CMakeLists.txtcmake_minimum_required(VERSION 3.10)project(camera_example CXX)# 读取交叉编译环境变量if(DEFINED ENV{CC})  set(CMAKE_C_COMPILER   $ENV{CC})endif()if(DEFINED ENV{CXX})  set(CMAKE_CXX_COMPILER $ENV{CXX})endif()if(DEFINED ENV{SYSROOT})  set(CMAKE_SYSROOT      $ENV{SYSROOT})endif()# 计算交叉编译器自带 include 路径get_filename_component(CLANG_BIN_DIR ${CMAKE_CXX_COMPILER} DIRECTORY)get_filename_component(CROSS_ROOT     ${CLANG_BIN_DIR}      DIRECTORY)set(CROSS_INCLUDE_DIR ${CROSS_ROOT}/include)# 通用编译/链接选项set(COMMON_FLAGS  -O2  --target=aarch64-linux-gnu  --sysroot=${CMAKE_SYSROOT})add_compile_options(${COMMON_FLAGS})add_link_options   (${COMMON_FLAGS})# 生成可执行add_executable(camera_example camera_example.cpp)# 包含头文件路径target_include_directories(camera_example PRIVATE  ${CROSS_INCLUDE_DIR}  ${CMAKE_SYSROOT}/usr/include  ${CMAKE_SYSROOT}/usr/include/driver)# 链接库路径target_link_directories(camera_example PRIVATE  ${CMAKE_SYSROOT}/usr/lib64)# 链接 SDK 库(根据实际库名调整)find_library(LIB_CAMERA NAMES mdc_camera camera       PATHS ${CMAKE_SYSROOT}/usr/lib64)find_library(LIB_MBUF   NAMES mdc_mbuf                PATHS ${CMAKE_SYSROOT}/usr/lib64)if(NOT LIB_CAMERA OR NOT LIB_MBUF)  message(FATAL_ERROR "找不到 SDK 库 (libcamera.so / libmdc_camera.so 或 libmdc_mbuf.so)")endif()target_link_libraries(camera_example PRIVATE  ${LIB_CAMERA}  ${LIB_MBUF})这是Makefile文件# Makefile —— 读取环境变量:CC, CXX, SYSROOTSRC       := camera_example.cppTARGET    := camera_example# 交叉编译器根目录CROSS_ROOT := $(shell dirname $(shell dirname $(CXX)))CXXFLAGS  := -O2 \              --target=aarch64-linux-gnu \              --sysroot=$(SYSROOT) \              -I$(SYSROOT)/usr/include \              -I$(SYSROOT)/usr/include/driver \              -I$(CROSS_ROOT)/includeLDFLAGS   := --target=aarch64-linux-gnu \              --sysroot=$(SYSROOT) \              -L$(SYSROOT)/usr/lib64 \              -lmdc_camera \              -lmdc_mbufall: $(TARGET)$(TARGET): $(SRC)$(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS)clean:rm -f $(TARGET).PHONY: all clean
  • [大赛资讯] 获奖证明
    请问官方组委会能提供一份参赛获奖证明吗,我们这边在申请奖学金,谢谢
  • [互动交流] 大佬,请问CodeArts IDE for C\C++ 工程创建完成后,出现这个报错咋解决?
    [2025/5/20 20:17:41] Unable to get configuration for editor.editContextMenu, please check if it's valid configuration[2025/5/20 20:17:43] WeCode-DB stopping error occurred, exit code: 1[2025/5/20 20:17:48] WeCode-DB starting error: Cannot read properties of null (reading 'pid')[2025/5/20 20:17:48] Huawei C/C++ Error:TypeError: Cannot read properties of null (reading 'pid')
  • [问题求助] 第27期求助:Time Series Algorithm题目所给文档中的提交样例是否可以提供
    不是很清楚提交文件的目录结构,所以想参考一下提交样例
  • [体验官] CodeArts的Java版本和C/C++和ShellRemote是一个安装包吗?
    CodeArts的Java版本和C/C++和ShellRemote是一个安装包吗, 为啥我下载这三个的安装包,安装下来都是一个软件呢?
  • [问题求助] 在华为云上安装 VS Code时老是说有错误
    在安装 VS Code时老是说有错误,主要有:一是下载的code.deb文件图标上老是有个锁,二是安装时提示:“code.deb 并非 Debian 格式的包文件”。不知道这是什么原因,有哪位高手能指点一下吗?
总条数:181 到第
上滑加载中