gpt4 book ai didi

c++ - 在多个文件中使用函数时出现 DLL 库错误

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

我正在制作库,以便在多个游戏中使用,这样我就不必重复代码。在这个例子中,我的主程序是main.cpp另外两个文件是我的库。一切都正确链接。

当我的所有功能都在 Common Functions Library.h 中时有static在前面,我得到错误:static function 'std::string common::joinAll(std::vector<std::string,std::allocator<_Ty>>)' declared but not defined (Error C2129)来自 main.cpp (即使函数在 Common Functions Library.h/.cpp 中),它说行号比整个程序中的行号多一个,这很奇怪。

所以,为了解决这个问题,我发现网上有人说我需要更换 staticinline ,所以我再次尝试并得到了这个错误:cannot open file 'Common Functions Library.lib' (Error LNK1104)

然后我尝试将所有功能设置回 static ,然后注释掉#include "Cubes Library.h"main.cpp ,它不再给我其他错误,而是与多维数据集库相关的东西(很明显)。然而,这在第 65 行停止,在导致错误的函数说它们未定义之后。我不知道出了什么问题,但感谢您的帮助:)

Code:

main.cpp

#include "Common Functions Library.h"
#include "Cubes Library.h"

// Using functions from `Common Functions Library`

Common Functions Library.cpp (Part of a DLL)

#include "Common Functions Library.h"


namespace common
{
// Functions
}

Cubes Library.cpp (Part of a DLL)

#include "Cubes Library.h"
#include "Common Functions Library.h"

最佳答案

如果将 inline 放在所有函数的前面并在头文件中定义,则不需要 .cpp 文件,因此也不需要 .lib.

我还在您的 Common Functions Library.h 中看到 namespace common。所以不要忘记在 main.cpp 中放置 using namespace common; 或在 中所有类的使用前加上前缀 common:: >main.cpp.

关于c++ - 在多个文件中使用函数时出现 DLL 库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48610511/

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