cmake_minimum_required(VERSION 3.25)
project(asy_c_test C)
set(CMAKE_C_STANDARD 11)
# 指定 lib 目录
link_directories(${PROJECT_SOURCE_DIR}/lib)
# 指定头文件搜索路径
include_directories(${PROJECT_SOURCE_DIR}/include)
add_library(asy_c_test library.c main.c main.c)
# 将库链接到项目中
target_link_libraries(${PROJECT_NAME} libasy_c_test.a)
#ifndef ASY_C_TEST_LIBRARY_H
#define ASY_C_TEST_LIBRARY_H
void printArrayElement(const int *, int);
void editArrayElement(int *, int, int);
void fillArray(int *, int, int);
#endif //ASY_C_TEST_LIBRARY_H
#include <stdio.h>
void printArrayElement(const int *pArr, int length) {
for (int i = 0; i < length; ++i) {
printf_s("%d: %d\n", i, *(pArr + i));
}
}
void editArrayElement(int *pArr, int index, int value) {
// *(pArr + index) = value;
pArr[index] = value;
}
void fillArray(int *pArr, int length, int value) {
for (int i = 0; i < length; ++i) {
pArr[i] = value;
}
}
#include <library.h>
int main() {
int arr[10];
fillArray(arr, 10, 50);
editArrayElement(arr, 8, 40);
printArrayElement(arr, 10);
return 0;
}
运行./main.c
的int main();,报错如下
F:\Documents\asy-c-test\main.c:1:10: fatal error: library.h: No such file or directory
1 | #include <library.h>
| ^~~~~~~~~~~
compilation terminated.
.
├── CMakeLists.txt
├── inc
│ ├── ansi_def.h
│ ├── ansi.h
│ ├── ansi_port.h
│ ├── nr_micro_shell_config.h
│ └── nr_micro_shell.h
├── main.c
├── nr_micro_shell_commands.c
└── src
├── ansi.c
├── ansi_port.c
├── CMakeLists.txt
└── nr_micro_shell.c
2 directories, 12 files
你试试
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)