项目结构:
project_root/
├── headers/
│ ├── math_functions.h
├── src/
│ ├── math_functions.c
│ ├── main.c
现在,创建一个 SO 库并执行程序并打印输出。 math_functions.c 包含 sqrt、floor、ceil、power 函数。 请帮我解答这个问题。
我是新手✌️
这就是我给出代码的方式: main.c
#include <stdio.h>
#include "math_functions.h"
int main()
{
double num = 16.0;
printf("Square root of %.2lf: %.2lf\n", num, custom_sqrt(num));
printf("Ceil of %.2lf: %.2lf\n", num, custom_ceil(num));
printf("Floor of %.2lf: %.2lf\n", num, custom_floor(num));
double base = 2.0;
double exponent = 3.0;
printf("%.2lf raised to the power of %.2lf: %.2lf\n", base, exponent, custom_power(base, exponent));
return 0;
}
math_functions.c
#include <math.h>
#include "math_functions.h"
double custom_sqrt(double x)
{
return sqrt(x);
}
double custom_ceil(double x)
{
return ceil(x);
}
double custom_floor(double x)
{
return floor(x);
}
double custom_power(double base, double exponent)
{
return pow(base, exponent);
}
math_functions.h
#define MATH_FUNCTIONS_H
// Function prototypes
double custom_sqrt(double x);
double custom_ceil(double x);
double custom_floor(double x);
double custom_power(double base, double exponent);
#endif // MATH_FUNCTIONS_H
现在,告诉我如何编译或如何制作makefile。因为我在编译和 make 命令时遇到错误,并且 your text 未创建 如果有错误请指正,也请给我正确的做法✌️✌️🫡
编译.c文件,然后生成.so文件。
gcc -c math_functions.c -o math_functions.o
gcc -共享-fPIC math_functions.o -o libmath_functions.so
生成可执行文件。 (参考.so文件)
gcc -o main main.c libmath_functions.so
or
gcc -o main main.c -lmath_functions -L.
在执行 ./main 之前检查您的“LD_LIBRARY_PATH”
您可以学习如何编写 Makefile 来执行这些过程。