繁体   English   中英

如何在 Windows 中安装 PDCurses 以与 C++ 一起使用?

[英]How do I install PDCurses in Windows for use with C++?

我想在我的一些程序中使用它而不是标准的 IOStream。

另外,NCurses 是否在 Windows 上工作,如果是这样,更好吗?

下载 zip 文件,将其解压缩到通常放置外部库的任何位置,然后检查自述文件,其中会告诉您以下内容:

PDCurses 已被移植到 DOS、OS/2、Win32、X11 和 SDL。 每个平台都有一个包含特定于端口的源文件的目录。 构建说明位于每个平台的 README 文件中。

Win32 目录中的自述文件告诉您有几个不同编译器的生成文件。 简而言之,你运行make

make -f 

它提到了您可以设置的几个选项,包括 WIDE 和 UTF8。

使用该库,请将包含curses.h的目录添加到您的包含路径并链接到make为您生成的pdcurses.lib文件。 如何修改包含路径和链接库取决于您的开发环境,并且在很大程度上与 PDCurses 无关。

我终于做到了。 首先根据文档构建/编译源代码。

make -f Makefile # did for me, Windows 10

curses.hpanel.h复制到include文件夹中。 并且,将wincon/pdcurses.a复制到您的lib文件夹中。 pdcurses.a重命名为libpdcurses.a (因为这是标准)。

现在,您可以包含curses.h并像这样编译它。

g++ main.cpp -lpdcurses

在 VSCode 上

[步骤 1] 安装 MinGW:

  • MinGW安装步骤
  • ^(请确保您仔细按照步骤操作)

[步骤 2] 构建 PDCurses:

  • 下载PDCurses-master.zip并解压内容

  • 运行MSYS2 MinGW 64-bit (或MSYS2 MinGW 32-bit ^1

  • cd进入wincon文件夹并运行make -f Makefile WIDE=Y DLL=Y source

[步骤 3] 复制文件:

如果您正确地遵循了上述步骤,则wincon文件夹中应该有 2 个特定文件,名为pdcurses.apdcurses.dll

  • pdcurses.a重命名为libpdcurses.a
  • pdcurses.dll复制到C:\\msys64\\mingw64\\bin
  • libpdcurses.a复制到C:\\msys64\\mingw64\\lib
  • curses.hpanel.hPDCurses-master文件夹复制到C:\\msys64\\mingw64\\include

[步骤 4] 构建示例:

  • 安装C/C++ 扩展

  • 按照这些 步骤在 VSCode 中创建一个工作环境

  • "args":下添加"-lpdcurses" "args":tasks.json

  • 你已经完成了(至少这些步骤对我有用)

额外的

  • ^1如果你想为 32 个系统构建一个好的规则是按照上面的所有步骤但是你看到 64 的地方用 32 替换它
  • 如果需要,您也可以通过在MSYS2 MinGW 64-bit终端中运行g++ your_example.c -o your_example -lpdcurses手动构建示例 [...]
  • 演示/示例

事情应该是什么样子:

在此处输入图片说明

  • c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Win64",
            "includePath": [
                "${default}"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "C:/msys64/mingw64/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}
  • 启动文件
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe build active file"
        }
    ]
}
  • 任务.json:
{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe build active file",
            "command": "C:\\msys64\\mingw64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-lpdcurses"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM