久久派程序编译日志

2025/02/15

配置了一个中午,终于编译通过了(笑),赶紧了备份目录,现在把CMakeLists.txt抄一遍。一开始是跟着龙邱配的,但他工程里面有C文件,也有Cpp文件,混着来反正没听太明白(笑),网上查资料根本查不到什么,只能让DeepSeek帮我纠错(“服务器繁忙,请稍后再试。”)

1
2
3
4
5
6
7
8
9
10
11
12
cmake_minimum_required(VERSION 3.16)

set(CMAKE_C_COMPILER /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/loongarch64-linux-gnu-gcc)

# 项目名称
project(main C)

file(GLOB SRC ${PROJECT_SOURCE_DIR}/code/*.c)
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/loongarch64-linux-gnu/sysroot/usr/include/)

add_executable(app ${SRC})

主要的问题是指定C文件编译的目录太长容易拼错,现在换成虚拟机后看得难受,报错的话是提示编译工具找不到。
还有一种错误是提示Cpp文件编译工具找不到,这是因为CMake有Cpp编译器检测,纯C的代码要么得加一句set(CMAKE_CXX_COMPILER_WORKS 1)禁用Cpp编译器检测,要么就得在project(main)main后面加一个C来表示工程是C文件。
编译的步骤一般是在工程目录建一个build目录,名字一般也叫“build”,然后终端cd到build目录,执行下面这个命令构建Makefile:

1
$ cmake -DCMAKE_C_COMPILER=/opt/loongson-gun-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/loongarch64-linux-gnu-gcc ..

如果没有报错的话就是构建成功了,一般有报错的话,build目录下可以找到生成的error log,终端也会输出信息。如果没有报错的话就返回工程根目录,执行下面的命令就可以编译工程了:

1
$ cmake --build build

第一个--build是构建命令,第二个build是输出的路径。

2025/02/17

查了很多资料,发现很多人不管写OpenCV还是别的程序都用的C++,所以还是把C++的编译加上,顺便把main.cpp移到了根目录,编译了一下没问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
cmake_minimum_required(VERSION 3.16)

set(CMAKE_C_COMPILER /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/loongarch64-linux-gnu-gcc)
set(CMAKE_CXX_COMPILER /opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/bin/loongarch64-linux-gnu-g++)

# 项目名称
project(main)

file(GLOB SRC ${PROJECT_SOURCE_DIR}/code/*.cpp)
include_directories(${PROJECT_SOURCE_DIR}/include)
include_directories(/opt/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.3-1/loongarch64-linux-gnu/sysroot/usr/include/)

add_executable(app main.cpp ${SRC})

【最后编辑:2025/02/17】


久久派程序编译日志
https://mrwei95.github.io/2025/02/15/cmake-build-c-loongarch/
作者
Tommy Wei
发布于
2025年2月15日
更新于
2025年4月2日