gpt4 book ai didi

c - 内核模块中的 GMP

转载 作者:行者123 更新时间:2023-11-30 19:33:33 26 4
gpt4 key购买 nike

我对模块编码很陌生,我需要在模块中运行一些使用 GMP 库的计算。

所以第一个问题:通常可以在内核中运行 GMP 吗?为了测试,我编写了这个模块:

#include <linux/init.h>
#include <linux/module.h>
#include <gmp.h>

int hallo_init(void)
{
mpz_t testFactor;
mpz_init( testFactor, NULL);
mpz_set_str(testFactor, "19", 10);
int length = (int) mpz_sizeinbase(testFactor,2);

printk(KERN_ALERT "That is testFactor: %x \n",length);

return 0;
}

void hallo_exit(void)
{
printk(KERN_ALERT "exit \n");
}

module_init(hallo_init);
module_exit(hallo_exit);

我使用以下命令运行它:

sudo make -C /lib/modules/$(uname -r)/build M=$PWD modules -lgmp

makefile 包含以下内容

obj-m := gmpFile.o

我还尝试在 makefile 中使用 -lgmp:

obj-m := halloGmp.o
ccflags-y := -lgmp

但我总是收到 fatal error :gmp.h:没有这样的文件或目录有什么建议么?将不胜感激您的帮助!

最佳答案

我不熟悉 GMP,但你不太可能将库动态链接到内核模块。

原因是内核是一个独立的程序,不知道您使用的任何系统库(例如 glib...),并且很可能 GMP 使用这些库。

我能想到的唯一解决方案是创建一个与用户空间中的程序通信的内核模块,并将 GMP 链接到应用程序的用户空间部分。

关于c - 内核模块中的 GMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45349449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com