gpt4 book ai didi

c++ - 创建 .lib 文件 - 第一次

转载 作者:可可西里 更新时间:2023-11-01 10:07:21 26 4
gpt4 key购买 nike

这是我第一次创建 .lib 文件,我有以下 C++ .exe 项目:

#include<stdio.h>

#pragma comment(lib, "mylib.lib")

int myFunction(void);

void main()
{
myFunction();

}

和另一个 C 项目(.lib 项目)

   int __cdecl myFunction(void)
{
}

我正在成功编译 .lib 文件“mylib.lib”并将其放入我的 exe 文件的编译目录,但我收到“错误 LNK2019:未解析的外部符号”错误,我是不是忘记了什么?

最佳答案

通常您会为您的库提供 header ,并将其包含在库和用户中。

首先,您应该在函数声明中使用extern 关键字。因为你已经指定了调用约定 __cdecl 你应该保持一致:

mylib.h

extern int __cdecl myFunction(void);

mylib.cpp

#include "mylib.h"

int __cdecl myFunction(void)
{
return 42;
}

libuser.cpp

#include <stdio.h>
#include "mylib.h"

#pragma comment(lib, "mylib.lib")

int main(void)
{
printf( "The answer to the question is %d\n", myFunction() );
return 0;
}

编辑 -- 名称修改...

我刚刚看到您关于项目是 C 和 C++ 的评论。在这种情况下,您必须帮助编译器处理发生的符号重整。在您的 header 中,您可以这样做:

#ifdef __cplusplus
extern "C" {
#endif

extern int __cdecl myFunction(void);

#ifdef __cplusplus
}
#endif

关于c++ - 创建 .lib 文件 - 第一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14246105/

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