Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी और सी++ में 64-बिट जीसीसी पर 32-बिट प्रोग्राम को कैसे संकलित करें?

आजकल कंपाइलर डिफ़ॉल्ट 64-बिट संस्करण के साथ आता है। कभी-कभी हमें किसी 32 बिट सिस्टम में कोड को संकलित और निष्पादित करने की आवश्यकता होती है। उस समय में, हमें इस सुविधा का उपयोग करना होगा।

सबसे पहले, हमें जीसीसी कंपाइलर के वर्तमान लक्ष्य संस्करण की जांच करनी होगी। इसे चेक करने के लिए हमें यह कमांड टाइप करनी होगी।

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-बिट संस्करण का उपयोग कर रहे हैं। अब 32-बिट सिस्टम का उपयोग करने के लिए, हमें निम्नलिखित कमांड लिखनी होगी।

gcc –m32 program_name.c

कभी-कभी यह आदेश नीचे की तरह कुछ त्रुटि उत्पन्न कर सकता है। यह इंगित करता है कि जीसीसी का मानक पुस्तकालय गायब है। उस स्थिति में हमें उन्हें स्थापित करना होगा।

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.

अब, जीसीसी के लिए मानक पुस्तकालय स्थापित करने के लिए, हमें निम्नलिखित आदेश लिखना होगा।

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. सी ++ में विकर्ण मैट्रिक्स और स्केलर मैट्रिक्स की जांच करने का कार्यक्रम

    मैट्रिक्स M[r][c] दिया गया है, r पंक्तियों की संख्या को दर्शाता है और c कॉलम की संख्या को इस तरह दर्शाता है कि r =c एक वर्ग मैट्रिक्स बनाता है। हमें ज्ञात करना है कि दिया गया वर्ग आव्यूह विकर्ण . है या नहीं और स्केलर मैट्रिक्स या नहीं, अगर यह विकर्ण . है और स्केलर मैट्रिक्स फिर परिणाम में हाँ प्

  1. C++ प्रोग्राम का उपयोग करके प्रोग्राम कैसे लॉन्च करें?

    यहां हम देखेंगे कि कुछ तृतीय-पक्ष एप्लिकेशन जैसे नोटपैड या सी ++ प्रोग्राम का उपयोग करके कुछ भी कैसे शुरू किया जाए। यह प्रोग्राम बहुत सरल है, हम इस कार्य को करने के लिए कमांड प्रॉम्प्ट कमांड का उपयोग कर सकते हैं। हम सिस्टम () फ़ंक्शन के अंदर एप्लिकेशन का नाम पास करेंगे। यह उसके अनुसार खुल जाएगा। उद

  1. C++ में संयोजन और क्रमपरिवर्तन की गणना कैसे करें?

    संयोजन और क्रमपरिवर्तन, कॉम्बिनेटरिक्स का एक हिस्सा हैं। क्रमचय विभिन्न व्यवस्थाएँ हैं जो तत्वों का एक समूह बना सकता है यदि तत्वों को एक समय में, कुछ को एक समय में या सभी को एक समय में लिया जाता है। यदि तत्वों को एक बार में लिया जाता है, कुछ को एक बार में या सभी को एक बार में लिया जाता है तो संयोजन