C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

CおよびC++で64ビットgccで32ビットプログラムをコンパイルする方法


現在、コンパイラにはデフォルトの64ビットバージョンが付属しています。場合によっては、コードをコンパイルして32ビットシステムに実行する必要があります。その際、この機能を使用する必要があります。

最初に、gccコンパイラの現在のターゲットバージョンを確認する必要があります。これを確認するには、このコマンドを入力する必要があります。

gcc –v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
...........
...........
...........

ここでは、ターゲットがx86_64であることを示しています。したがって、64ビットバージョンのgccを使用しています。 32ビットシステムを使用するには、次のコマンドを作成する必要があります。

gcc –m32 program_name.c

このコマンドは、以下のようなエラーを生成する場合があります。これは、gccの標準ライブラリが欠落していることを示しています。そのような状況では、それらをインストールする必要があります。

In file included from test_c.c:1:0:
/usr/include/stdio.h:27:10: fatal error: bits/libc-header-start.h: No such file
or directory
#include <bits/libc-header-start.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

ここで、gccの標準ライブラリをインストールするには、次のコマンドを作成する必要があります。

sudo apt-get install gcc-multilib
sudo apt-get install g++-multilib

このコードを使用すると、32ビットシステムと64ビットシステムでの実行の違いがわかります。

#include<stdio.h>
main(){
   printf("The Size is: %lu\n", sizeof(long));
}

出力

$ gcc test_c.c
test_c.c:3:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
main(){
^~~~
$ ./a.out
The Size is: 8

出力

$ gcc -m32 test_c.c
test_c.c:3:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
main(){
^~~~
test_c.c: In function ‘main’:
test_c.c:4:28: warning: format ‘%lu’ expects argument of type ‘long unsigned
int’, but argument 2 has type ‘unsigned int’ [-Wformat=]
printf("The Size is: %lu\n", sizeof(long));
~~^
%u
$ ./a.out
The Size is: 4

  1. C ++プログラムを使用してプログラムを起動するにはどうすればよいですか?

    ここでは、メモ帳などのサードパーティアプリケーションやC++プログラムを使用したものを起動する方法を説明します。このプログラムは非常に単純で、コマンドプロンプトコマンドを使用してこのタスクを実行できます。 system()関数内でアプリケーション名を渡します。これにより、それに応じて開きます。 例 #include <iostream> using namespace std; int main() {    cout >> "Opening Nodepad.exe" >> endl;    sy

  2. C ++で組み合わせと順列を計算する方法は?

    組み合わせと順列は組み合わせ論の一部​​です。順列は、要素が一度に1つずつ、一度にいくつか、または一度にすべて取得される場合に、要素のセットが作成できるさまざまな配置です。組み合わせとは、要素を一度に1つずつ、一部を一度に、または一度にすべて取得する場合に、要素を選択するさまざまな方法です。 合計n個の要素があり、r個の要素を配置する必要がある場合の順列の数。 合計n個の要素があり、r個の要素を選択する必要がある場合の組み合わせの数。 C++で組み合わせと順列を計算するプログラムは次のとおりです。 例 #include <iostream> using names