gpt4 book ai didi

c++ - Kext 编译正常,符号未定义

转载 作者:搜寻专家 更新时间:2023-10-31 01:42:51 25 4
gpt4 key购买 nike

我最近在为 osx 10.9 编写内核模块,发现我编译的最终二进制文件中的每个符号都未被 nm 工具定义。

如何通过在build设置中指定标志来完成?我的意思是,当您构建用户模式应用程序时,如果它有未解析的符号,则无法正确链接。我在构建 kext 二进制文件的命令行中找不到任何相关标志。

只是出于好奇,这个告诉链接器任何 undefined symbol 都可以的标志在哪里?我知道 --unresolved-symbols 标志,但在构建命令行中找不到它。

此外,我如何直接链接到 mach_kernel?因为我刚刚看到一个链接到 macho 的 osx 10.5 驱动程序。还是只有在过去才有可能?

最佳答案

为 kext 完成此操作的标志是 -Xlinker -kext,它还包括选项 -nostdlib,因为基本标准库对 kext 不可用.这些规则告诉 OSX 链接器它不需要解析生成的二进制文件中的所有符号。

直接链接到内核,您依赖于在 kext 加载时而不是在任何其他时间连接的 undefined symbol 。

关于c++ - Kext 编译正常,符号未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26155005/

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