【发布时间】:2012-02-01 16:36:48
【问题描述】:
我想在(32 位)NASM 中实现一些具有以下签名的函数:
int function1();
int function2();
等等。
然后我想创建一个目标文件并能够将它与使用 gcc 编译的 C++ 程序静态链接。我正在寻找一个返回 int 的函数的示例实现、导出符号所需的任何附加代码以及 NASM 的命令行以生成我可以静态链接到的 .a 文件。提前致谢。
【问题讨论】:
-
我认为 NASM 不会生成 .a 文件,但您可以使用 ar 轻松地从 .o 制作一个。而且您不一定需要 .a 文件来链接;您可以直接链接 .o 文件。所以我想你只需要知道如何编写汇编函数来兼容 gcc 调用约定。您可能希望在您的原型上使用
extern "C"。这是一个可能有帮助的链接wiki.osdev.org/C%2B%2B_to_ASM_linkage_in_GCC
标签: c++ gcc static-libraries nasm