كيفية ترجمة التعليمات البرمجية POSIX القائمة لويندوز 64 بت؟

StackOverflow https://stackoverflow.com/questions/873812

  •  22-08-2019
  •  | 
  •  

سؤال

وأنا موافق مع استخدام سيغوين أو مينغو، ولكني في حاجة إلى نهاية المطاف مع رمز 64 بت، وليس 32 بت. هذا هو لأنني سوف استدعاء DLL من 64 بت تمكن C #. لا أستطيع العثور على ما يبدو وإشارات جيدة لإعداد هذه الأدوات لخلق ثنائيات 64 بت. أيضا، سيكون من الجميل لو كان مجلس التعاون الخليجي الإصدار 4، وليس الإصدار 3 كما جاء مع بلدي سيغوين تثبيت.

وبديل سيكون شكلا من أشكال التواصل بين النواتىء. وسوف أن البحوث، ولكن ما أنا المبينة أعلاه هو ما أريد حقا.

هل كانت مفيدة؟

المحلول

64 بت مينغو ، استنادا إلى (صدر للتو) دول مجلس التعاون الخليجي-4.4.0 ، ربما هو أفضل رهان. (بما أن مشروع مينغو-W64 على sourceforge.net يتحرك إلى mingw-w64.org أنه من الأفضل استخدام mingw-w64.org )

وتعليمات مفصلة:
1. تحميل في أرشيف
2. استخراج في مكان ما تحت سيغوين. في حالتي، والدليل المستوى الأعلى سيغوين هو C:\cygwin، I استخراج الحزمة إلى دليل mingw، وانتهى مع محتويات التالية في C:\cygwin\mingw (وهو أمر واضح كما /mingw تحت سيغوين:

$ ls -l /mingw
total 1
drwxr-xr-x+ 2 user None  0 May 10 08:32 bin
drwxr-xr-x+ 2 user None  0 May 10 05:45 include
drwxr-xr-x+ 2 user None  0 May 10 08:30 info
drwxr-xr-x+ 3 user None  0 May 10 08:30 lib
drwxr-xr-x+ 3 user None  0 May 10 05:45 libexec
drwxr-xr-x+ 4 user None  0 May 10 05:45 man
lrwxrwxrwx  1 user None 17 May 17 17:20 mingw -> x86_64-pc-mingw32
drwxr-xr-x+ 3 user None  0 May 10 04:16 share
drwxr-xr-x+ 5 user None  0 May 10 04:18 x86_64-pc-mingw32

3. الآن تجميع بعض التعليمات البرمجية C ++. كنت:

// t.cc
#include <vector>
#include <string>

using namespace std;
int main()
{
    vector<string> vs;
    vs.push_back("abc");
}

وتجميع مثل هذا:

$ /mingw/bin/x86_64-pc-mingw32-g++ t.cc

4. وأخيرا، تحقق من النتيجة هي ويندوز / × 64 قابل للتنفيذ، عن طريق تشغيل dumpbin /headers a.exe:

Microsoft (R) COFF/PE Dumper Version 7.00.9466
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file a.exe

PE signature found

File Type: EXECUTABLE IMAGE

FILE HEADER VALUES
            8664 machine (AMD64)
              10 number of sections
        4A10AF9F time date stamp Sun May 17 17:45:19 2009
           ABA00 file pointer to symbol table
             EC4 number of symbols
              F0 size of optional header
              27 characteristics
                   Relocations stripped
                   Executable
                   Line numbers stripped
                   Application can handle large (>2GB) addresses

نصائح أخرى

في مستندات دول مجلس التعاون الخليجي يقول:

<اقتباس فقرة>   

ويتم اعتماد هذه المفاتيح `-m" في   بالإضافة إلى ما سبق على AMD إكس86-64   المعالجات في بيئات 64 بت.

     

و-m32   -m64 إنشاء رمز للبيئة 32 بت أو 64 بت. 32-بت   البيئة تحدد كثافة، طويلة ومؤشر ل   إلى 32 بت ويولد التعليمات البرمجية التي   يعمل على أي نظام I386. 64-بت   مجموعات البيئة كثافة العمليات إلى 32 بت و   منذ فترة طويلة والمؤشر إلى 64 بت و   يولد رمز لإكس86-64 أيه إم دي   الهندسة المعمارية.

لاحظ أن ما يجري لدفع أنت مجنون، كما أعتقد، إذا مينغو يفعل ذلك حقا بهذه الطريقة، لأن عادة على ويندوز 64 الطويل هو 32 بت وطويلة طويلة هو 64 بت مؤشر الحجم نوع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top