在 vscode 中使用 C 为 Linux 中的数学函数创建 SO 库

问题描述 投票:0回答:1

项目结构:

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 linux makefile terminal shared-libraries
1个回答
0
投票

编译.c文件,然后生成.so文件。

  1. gcc -c math_functions.c -o math_functions.o

  2. gcc -共享-fPIC math_functions.o -o libmath_functions.so

  3. 生成可执行文件。 (参考.so文件)

    gcc -o main main.c libmath_functions.so

     or
    

    gcc -o main main.c -lmath_functions -L.

  4. 在执行 ./main 之前检查您的“LD_LIBRARY_PATH”

您可以学习如何编写 Makefile 来执行这些过程。

© www.soinside.com 2019 - 2024. All rights reserved.