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

问题描述 投票:0回答:3

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

另外,NCurses 可以在 Windows 上运行吗?如果可以,是否会更好?

c++ pdcurses
3个回答
6
投票

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

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

Win32目录下的readme文件告诉你有几个不同编译器的makefile。简而言之,你跑

make
:

make -f make文件名

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

然后要使用库,请将包含curses.h的目录添加到您的包含路径中,并链接到make为您生成的

pdcurses.lib
文件。如何修改包含路径和链接库取决于您的开发环境,并且与 PDCurses 基本无关。


5
投票

在 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.a
pdcurses.dll

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

[第 4 步]构建示例:

  • 安装C/C++扩展

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

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

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

额外

  • 如果您愿意,您也可以通过在
    g++ your_example.c -o your_example -lpdcurses
    终端内运行
    MSYS2 MinGW 64-bit
    来手动构建示例 [...]
  • ^1 如果您想构建 32 个系统,一个好的规则是遵循上述所有步骤,但无论您在哪里看到 64,请将其替换为 32
  • 演示/示例

事情应该是什么样子:

enter image description here

  • 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
}
  • launch.json
{
    // 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"
        }
    ]
}
  • tasks.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"
}

2
投票

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

make -f Makefile # did for me, Windows 10

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

现在,您可以包含

curses.h
并像这样编译它。

g++ main.cpp -lpdcurses
© www.soinside.com 2019 - 2024. All rights reserved.