【问题标题】:Linking SDL with FreePascal (using Lazarus) on Windows OS在 Windows 操作系统上将 SDL 与 FreePascal(使用 Lazarus)链接起来
【发布时间】:2016-01-26 08:59:41
【问题描述】:

好的,对于我正在开发的游戏,我的程序员决定将 FreePascal 与 SDL 结合使用,并向我展示了它的工作原理(尽管他使用的是 Linux 操作系统而我没有)。我尝试了多种将 SDL2.dll 和随附的头文件链接到 Lazarus 项目的方法,但它们似乎都不起作用。到目前为止,这是我尝试过的:

  1. 将 .dll 添加到我正在使用的项目的项目文件夹中
  2. Adding the .dlls to the FPC "Units" folder in my OS
  3. Adding the .dlls path in the project options window
  4. 直接在fpc.cfg文件中添加.dlls文件夹:

库的搜索路径

-FlC:\lazarus\fpc\$FPCVERSION/lib

-fl/lib;/usr/lib

-FlC:\lazarus\fpc\$FPCVERSION/lib/$FPCTARGET

-FlC:\lazarus\fpc\$FPCVERSION/lib/$FPCTARGET/SDL2

工具的搜索路径

-FDC:\lazarus\fpc\$FPCVERSION/bin/$FPCTARGET

所以我在 Uses 位置也有它们:

用途

{$IFDEF UNIX}{$IFDEF UseCThreads}

线程,

{$ENDIF}{$ENDIF}

类、sysutils、SDL2、SDL2_ttf

基本上,如何在 Windows 8 操作系统上将 SDL2 库链接到 Lazarus?

【问题讨论】:

  • 那么你在什么时候得到了什么错误?

标签: windows sdl sdl-2 freepascal lazarus


【解决方案1】:

我假设目标是 Windows 操作系统,否则 DLL 将无法工作。将SDL.dll 放在应用程序目录中,这是Windows 查找任何DLL 的第一个位置。

定义函数为

function name(params: types); cdecl; external 'SDL.dll';

cdecl 因参数传递给函数的方式而异。 希望这能让你开始。

【讨论】:

    【解决方案2】:

    基本上,他是在告诉您使用从根本上损坏的 Jedi 标头,我可能是开发人员(或您在此处引用的几个人之一,将 dll 文件放在应用程序目录中。您的 uses 子句是正确的,但是您忘记了很多单位。您将在该库中遇到很多麻烦(sdl,我已经尝试解决其中的很多问题)并且我没有得到适当的承认这样做。

    此时我倾向于开罗。

    Microsoft (gh) 正在使用我的源代码玩游戏。我找到了另一个 git 存储库,我将很快上传。

    寻找 Lazarus 图形。现在是用词不当,因为我的 lcl 编程还达不到标准,但我已经做到了。

    这应该与 Vs Studio 或 vs code 应用程序编译没有问题,据我所知,它徘徊在 15 GB 左右。 (我可以在这么大的空间里安装整个 Linux)。

    您可能在 64 位平台上下载了 32 位库,反之亦然,这会带来很多严重的问题。

    Jedi 标头是用于此隐式使用的 Pascal 端口(c 标头),您正在尝试引用。没有它们,您将一事无成。

    【讨论】:

    • 你只迟到了 6 年的答案 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多