相关疑难解决方法(0)

如何在我的程序中正确使用 SDL2?

我想使用 SDL2 制作游戏,但我无法编译和/或运行我的代码,请帮助!

众所周知,SDL2 很难设置,它通常是有抱负的游戏开发人员尝试使用的第一个库。

这篇文章旨在作为设置 SDL2 的常见问题的规范副本。

c c++ sdl sdl-2

16
推荐指数
1
解决办法
4303
查看次数

在 Windows 上安装最新版本的 mingw-w64

我拼命尝试安装最新版本的 mingw-w64 以在 Windows 10 上访问 gcc 10。

以前用过mingw-w64的在线安装器,但是还是卡在2018年8.1.0上,好像被废弃了。

所以我尝试手动安装它。

在 SourceForge 或 GitHub Mirror 上,您似乎只能得到一大块代码,而没有任何关于做什么、如何构建和安装它的明确说明。我设法找到的唯一安装说明要求您已经安装了一个可以工作的 gcc(如果这是您首先想要安装的非常有帮助)。

在他们的网站和维基上提到了一个预编译的二进制包。但我能找到的唯一一个也非常过时。

将此与 clang 或 Microsoft 构建工具的安装过程进行比较,它实际上让我大吃一惊,像安装这样基本的东西会如此令人困惑。

也许只是我错过了明显的 ,但你如何实际安装这个东西?

c++ mingw-w64

12
推荐指数
2
解决办法
9907
查看次数

什么是 MSYS2 环境?我该如何选择一个?

据说MSYS2有不同的环境

这些是什么?我该如何选择使用哪一个?


(本问答旨在作为该主题的规范副本。)

mingw msys mingw-w64 msys2

7
推荐指数
1
解决办法
3021
查看次数

在 Windows 10 中 MinGW-w64 安装失败并显示“ERROR res”

最新的在线安装程序(来自 SourceForge 的 mingw-w64-install.exe)在安装过程中失败并显示“错误资源”消息。我班上大约有 50 名学生中的几个学生无法安装它。他们不得不改用 MinGW。我们所有的努力,例如卸载、重新启动、清理 env 变量和/或将其安装在新文件夹中,都没有解决问题。

我知道几年前报告了完全相同的问题并在当时解决了。恐怕最近的安装脚本中也潜藏了同样的bug。

顺便说一句,我的几个学生重新安装了windows10,然后能够成功安装mingw-w64。

有没有办法在不使用 mingw-w64-install.exe 的情况下安装 mingw-w64?

mingw mingw-w64

6
推荐指数
1
解决办法
7797
查看次数

如何安装 MinGW64(所有方法都不起作用)

我正在尝试在 Windows 10 上安装 MinGW64。这是我尝试过的:

方法一

通过http://mingw-w64.org/doku.php

我访问http://mingw-w64.org/doku.php/download/win-builds,然后从那里访问http://win-builds.org/doku.php/download_and_installation_from_windows,在那里我下载了Win-builds 1.5.0 。我运行 exe 并让它安装所有内容。当它安装 mingw64 时,它说下载失败(没有更多信息)。我应该怎么办?

方法2

通过https://sourceforge.net/projects/mingw-w64/

我还从https://sourceforge.net/projects/mingw-w64/下载了 mingw-w64-v7.0.0 ,提取了 zip,但不知道如何处理内容:

13.02.2020  13:37                   .gitignore
13.02.2020  13:37            31.032 aclocal.m4
13.02.2020  13:37             2.398 AUTHORS
13.02.2020  13:37    <DIR>          build-aux
13.02.2020  13:37               625 config.h.in
13.02.2020  13:37           123.961 configure
13.02.2020  13:37             3.268 configure.ac
13.02.2020  13:37             2.326 COPYING
13.02.2020  13:37    <DIR>          COPYING.MinGW-w64
13.02.2020  13:37    <DIR>          COPYING.MinGW-w64-runtime
13.02.2020  13:37             2.245 DISCLAIMER
13.02.2020  13:37               454 DISCLAIMER.PD
13.02.2020  13:37               745 Makefile.am
13.02.2020  13:37 …
Run Code Online (Sandbox Code Playgroud)

windows mingw-w64

4
推荐指数
1
解决办法
2万
查看次数

Windows 上的 C++20 编译器

我需要一个支持 c++20 的编译器,例如 GCC 10.1(在 Linux 上使用),但要在 Windows 10 中使用它。

我看到帖子推荐Mingw-w64,但是它支持c++20吗?

c++ windows gcc compilation c++20

4
推荐指数
1
解决办法
2万
查看次数

'g ++'不被识别为内部或外部命令,可操作程序或批处理文件

#include<iostream>
using namespace std;
int main()
{
    cout<<"hi"<<endl;   
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Sublime text 3,我收到此错误:

error-'g ++'不被识别为内部或外部命令,可操作程序或批处理文件.[以0.0s完成]

c++

3
推荐指数
1
解决办法
4万
查看次数

如何在 Windows 10 x64 上使用 Bazel 构建和调试 c++ 可执行文件

我想使用生成的带有 bazel 的可执行文件来调试 c++ 代码,但由于某种原因,bazel 不在 x64 架构上构建代码,或者可执行文件在调试模式下不起作用。

我的文件是

主程序

#include <iostream>

int main()
{
    int a = 3;
    int b = 5;
    int c = a + b;

    /* code */
    std::cout << "Hello world" << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我使用这个命令来构建我的应用程序

bazel build //src/app:main --strip=never --compilation_mode=dbg

但是当我在设置断点后尝试调试应用程序时,我在控制台中收到此错误

例如,如果我跑

gdb main.exe

然后

(gdb) 中断主要

我得到

没有加载符号表。

当我使用bazel build 命令构建代码时,如何在 main.exe 中加载符号?

c++ mingw bazel

3
推荐指数
1
解决办法
2971
查看次数

为什么我的编译器不能识别 #include &lt;thread&gt; (c++)?

我将其作为多线程示例的简化版本编写以了解它,但在编译时遇到了一些问题。我的编译器说它thread不是 的成员std并提示我添加#include <thread>到我的代码中,即使我已经这样做了。到目前为止,我一直无法找到任何类似的问题,但我怀疑这是我编译它的方式的问题,因为我的代码与示例代码非常相似。

#include <iostream>
#include <thread>

void doWork () {
    std::cout << "Working...\n";
}

int main () {
    std::thread worker(doWork);
    
    work.join();
    std::cout << "Finished\n";
    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的编译器是MinGW的G ++ 9.2.0
我编译g++ main.cpp -o main它给了我这些错误:

main.cpp: In function 'int main()':
main.cpp:9:7: error: 'thread' is not a member of 'std'
    9 |  std::thread worker(doWork);
      |       ^~~~~~
main.cpp:3:1: note: 'std::thread' is defined in header '<thread>'; did you forget to '#include <thread>'?
    2 | #include …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading mingw

3
推荐指数
1
解决办法
322
查看次数

整数计数{0}。我可以在 C++ 中使用花括号初始化变量吗?

我是计算机科学理学士学位的第一年学生。我收到了教授对我最近提交的作业的评论。我将 int 变量初始化为零:int count{0};。课程中分配给我们的书只提供了一种使用赋值语句来初始化变量的方法。整数计数=0;

我不记得我在哪里学到的花括号方法来初始化变量。据我的教授说,这不是合法的做法。我的程序在 Atom 和在线调试器上运行没有任何错误。我总是检查我的程序是否有来自两个不同平台的错误。因此,我很困惑是否我的方法是错误的并且被编译器错过了,或者这个方法是合法的但不被认为是标准的。

任何澄清都会有帮助。还有关于调试良好编程实践的任何建议,这样就不会再发生这种情况了,因为我在 10 分作业中丢了 4 分。

c++ variables initialization braced-init-list

2
推荐指数
1
解决办法
1107
查看次数

Dev C++ 没有检测到关于只使用带有 cout 的单尖括号的错误?

我有一个用 C++ 实现邻接矩阵的程序。
这是我的代码-

#include<iostream>

using namespace std;

void addEdge(int * add){
    cout<<"Edge added successfully.\n";
    *add = 1;
}

int main(){
    
    int vertex;
    
    cout<<"Enter number of vertices in the graph: ";
    cin>>vertex;
    
    int adjMat[vertex][vertex];
    
    for(int i=0;i<vertex;i++){
        for(int j=0;j<vertex;j++){
            adjMat[i][j] = 0;
        }
    }
    
    cout<<"\n";
    cout<<"Add edges (from and to): ";
    int from,to;
    while(cin>>from>>to){
        if((from >= vertex || from < 1) || (to >= vertex || to < 1)){
            cout<"Warning: Out of bound index.\n";
        }else{
            addEdge(&adjMat[--from][--to]);
        }
    }
    
    cout<<"\n";
    for(int i=0;i<vertex;i++){ …
Run Code Online (Sandbox Code Playgroud)

c++ dev-c++

1
推荐指数
1
解决办法
50
查看次数

如何使用 MinGW 编译器在 Windows 命令提示符下使用 Makefile 编译代码?

我正在尝试使用也提供给我的 makefile 编译一些提供给我的代码。我在 Windows 10 上使用 MinGW 作为我的编译器。

我对 makefile 的经验很少,而且我创建和运行的 makefile 远没有我试图用来编译一些代码的那个复杂。

通常,当我使用 makefile 进行编译时,在命令提示符下,我会转到文件所在的目录,然后键入命令“make”并创建一个可执行文件,然后我就可以运行代码了。但是,这一次不起作用。我收到一条消息:

'make' 不是内部或外部命令,也不是可运行的程序或批处理文件。”

下面是make文件的内容:

CC=g++
CFLAGS=
INC=
LIB=

all:  sorting

sorting:  Driver.o Helper.o
    $(CC) $(CFLAGS) -o $@ $^ $(LIB)

.cpp.o:
    $(CC) $(CFLAGS) $(INC) -c -o $@ $^ 

Driver.cpp:  Sorting.hpp Helper.cpp

Helper.cpp:  Helper.hpp

clean:
    rm -f *.o sorting
Run Code Online (Sandbox Code Playgroud)

我如何使用这个 make 文件来运行代码?

c c++ mingw g++

0
推荐指数
1
解决办法
6910
查看次数

仅当打开优化时,在函数中声明 ifstream 时出现段错误,但不在 main 中声明

正如标题所示,我遇到了 ifstream 问题。我试图读取一个文本文件,在调试时可以正常工作,但在发布版本中则不行。我能够将范围缩小到下面的示例。

如果打开优化,以下代码在到达filein的声明时会出现段错误foo()

#include <iostream>
#include <fstream>

void foo (){
    std::cout << "I'm here 3" << std::endl;

    std::ifstream file;

    std::cout << "I'm here 4" << std::endl;
}

int main()
{
    std::cout << "I'm here 1" << std::endl;

    std::ifstream file;

    std::cout << "I'm here 2" << std::endl;

    foo();

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

I'm here 1
I'm here 2
I'm here 3
Run Code Online (Sandbox Code Playgroud)

我正在使用以下命令进行编译和链接:

g++ -Wall -std=c++17 -O1 main.cpp -o main.exe 
Run Code Online (Sandbox Code Playgroud)

如果我将其更改-O1为,O0它不会出现段错误并运行到最后。我不太确定问题是什么。

我的系统是 Windows …

c++ gcc mingw ifstream segmentation-fault

0
推荐指数
1
解决办法
137
查看次数