小编Ale*_*lex的帖子

简单的程序崩溃

所以我一直在使用MinGW GCC 4.4版或者一段时间,并决定升级时间.我去了MinGW网站并下载了最新版本的GCC(4.7.0).

删除我以前的版本并安装最新版本后,即使是最简单的程序也会崩溃.例如,如果我编译这个程序

#include <iostream>

using namespace std;

int main () {
    cout << "Hello, World" << endl;

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

使用命令行

g++ hello.cpp -o hello.exe
Run Code Online (Sandbox Code Playgroud)

它将打印出"Hello,World"然后崩溃.但是,如果我使用以下命令行编译它:

g++ -O3 hello.cpp -o hello.exe
Run Code Online (Sandbox Code Playgroud)

它会完美运行,而不会崩溃.

现在,如果我更改输入程序,并使其稍微复杂一点:

#include <iostream>
#include <string>

using namespace std;

int main () {
    string str;

    cout << "Enter a string: ";
    getline (cin, str);

    if (str == "foo")
        cout << "You entered foo!" << endl;
    else
        cout << "You entered: " << str;

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

如果没有优化选项(-O3),它将在打印出"输入字符串:"之前崩溃,但是,使用代码优化行,它会在输入字符串后崩溃. …

c++ crash gcc g++

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

如何在Windows上编译OpenSSL?

我一直在遵循《OpenSSL用户指南》中的说明,该指南链接到3noch的编译OpenSSL 的指南。以下是我使用的工具/版本:

  • ActiveState Perl v5.20.2
  • Microsoft Visual Studio 2012
  • Netwide汇编器(NASM)v2.12.02
  • OpenSSL 1.0.2j(源压缩文件)

按照说明,我能够执行以下命令而不会出现问题:

perl Configure VC-WIN32 --prefix=C:\Build-OpenSSL-VC-32
ms\do_ms
Run Code Online (Sandbox Code Playgroud)

然后,当我继续执行

nmake -f ms\nt.mak
Run Code Online (Sandbox Code Playgroud)

我收到以下

 Assembling: tmp32\sha1-586.asm
tmp32\sha1-586.asm(1432) : error A2070:invalid instruction operands
tmp32\sha1-586.asm(1576) : error A2070:invalid instruction operands
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0
\VC\BIN\ml.EXE"' : return code '0x1'
Stop.
Run Code Online (Sandbox Code Playgroud)

在调查了这个问题之后,我发现HostageBrain博客文章提到了确切的错误,指出要使用nasm进行编译。因此,我切换到以下命令序列:

perl Configure VC-WIN32 --prefix=C:\Build-OpenSSL-VC-32
ms\do_nasm
nmake -f ms\nt.mak
Run Code Online (Sandbox Code Playgroud)

但是,一旦切换到NASM版本,就会收到以下错误:

tmp32\sha1-586.asm:1: error: parser: instruction expected …
Run Code Online (Sandbox Code Playgroud)

c++ windows openssl nasm visual-studio-2012

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

标签 统计

c++ ×2

crash ×1

g++ ×1

gcc ×1

nasm ×1

openssl ×1

visual-studio-2012 ×1

windows ×1