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,终端也会输出信息。如果没有报错的话就返回工程根目录,执行下面的命令就可以编译工程了:
第一个--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】