协助将基本 SDK 纳入 C++ 程序 Dev C++

问题描述

我一直在制作一些我想链接discord 的应用程序,特别是使用 discord 的 SDK。 SDK 带有 64 位和 32 位 x84 lib 文件,以及一个包含它需要的包含的 C++ 文件夹,因此我假设支持 C++。

但是,我在链接库或任何其他方面非常糟糕,并且在链接时总是遇到问题。我使用 Dev C++ 作为我的 IDE,我的代码如下:

#include <iostream>
#include "discord/discord.h"
using namespace std;



void Initdiscord()
{
    auto discid = 772671910668133376; //Not my actuall discord app ID,but real one does not make a difference
    discord::Core* core{};
    discord::Core::Create(discid,discordCreateFlags_Default,&core);
}

int main(){
    Initdiscord();
    cout << "discord active";
    while(1){
    }
    return 0;
}

我收到错误

C:\TDM-GCC-64\x86_64-w64-mingw32\bin\ld.exe discord Testing.o:discord Testing.cpp:(.text+0x32): undefined reference to `discord::Core::Create(long long,unsigned long long,discord::Core**)'

仅适用于行 discord::Core::Create(discid,&core); 而不是 discord::Core* core{};

我正在使用 C++17 和更新的 TDM-GCC 编译器,该编译器适用于我的所有其他应用程序。我将 .lib 文件和 .dll 文件包含在程序目录中,而在链接器中,我唯一使用的是 -discord_game_sdk.dll.lib,它是一个有效目录。我也尝试过 discord_game_sdk.dll.lib 并将库放在与包含相同的目录中:discord/discord_game_sdk.dll.lib。我已经尝试在所有项目和编译器目录中使用 32 位和 64 位库而没有改变,我相信这可能真的很简单,但我没有找到任何示例 C++ discord 程序或如何包含他们的 SDK。>

如果有人能弄清楚问题是什么以及我如何解决它,那将非常有帮助和赞赏。

编辑: 看来user4581301 是对的,TDM-GCC 和其他Mingw 编译器不支持.lib 文件,尽管已链接,也会忽略它们。除了 .dylib、.so.bundle 之外,SDK 没有附带任何其他格式。 这产生了一个新问题,我已经设置了编译器并且无法真正切换到 Visual Studio,所以我需要一种方法以某种方式将 .lib 转换为 .a一个帖子 here 推荐 http://code.google.com/p/lib2a/ ,它需要一个 .def 文件,另一个没有随 SDK 一起提供的文件,但显然我的编译器附带的一个名为 gendef.exe 的程序可以从 .def文件创建 .dll文件。确实如此,但是在尝试时出现错误

    C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\bin>gendef.exe discord_game_sdk.dll
 * [discord_game_sdk.dll] Found PE image
 * Failed to create discord_game_sdk.def ...

没有其他警告。现在我需要知道我是否转换错误,是否有更简单的解决方法,或者是否可以转换或使用其他文件类型之一。欢迎并感谢此时的任何建议!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)