You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CLion中C多模块项目构建报错:undefined reference to `ui' 求助

解决CLion中C项目链接错误:undefined reference to `ui'

出现undefined reference to 'ui'是链接器错误,说明编译器能找到ui()的声明,但链接时找不到对应的实现代码。结合你的项目结构和配置,可按以下步骤排查修复:

1. 修正CMakeLists.txt的语法错误

你的include_directories写法不符合CMake规范:多个目录不能用逗号分隔,带空格的目录名需要用引号包裹。修正后的CMakeLists.txt如下:

set(CMAKE_BUILD_TYPE Release)
cmake_minimum_required(VERSION 3.10)
project(a2-dragos12312-1)

# Include the headers directory(修正目录分隔方式)
include_directories("headers" "c files")

# Add the source files and create the executable
add_executable(a2-dragos12312-1 "c files/main.c" "c files/ui.c")

2. 简化头文件引用路径

因为已经通过include_directories将headers目录加入了头文件搜索路径,main.c中无需使用相对路径引用头文件,直接写:

#include "ui.h"

int main() {
    ui();
    return 0;
}

这样可以避免因目录层级变动导致的路径错误。

3. 验证ui.c的函数实现匹配度

确认ui.c中的函数实现与ui.h的声明完全一致:

  • 函数名大小写必须完全匹配(C语言区分大小写)
  • 返回值、参数列表必须和声明一致,比如必须是void ui() { ... },不能写成void UI()或者int ui()

完成以上修改后,重新构建项目即可解决链接错误。

内容的提问来源于stack exchange,提问作者Dragos 123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:43:12