Question

Je suis ok avec l'aide de Cygwin ou MinGW, mais je dois finir avec le code 64 bits, pas 32 bits. Ceci est parce que je vais demander la DLL de gestion C # 64 bits. Je ne peux pas sembler trouver et de bonnes références pour la mise en place de ces outils pour créer les binaires 64 bits. De plus, ce serait bien si le CCG était la version 4, pas la version 3 en est venu avec mon Cygwin installer.

Une autre solution serait une certaine forme de communication interprocessus. Je la recherche, mais ce que je Disposées ci-dessus est ce que je veux vraiment.

Était-ce utile?

La solution

64 bits MinGW , sur la base (juste libéré) gcc-4.4.0 , est probablement votre meilleur pari. (Étant donné que le projet MinGW-w64 sur sourceforge.net se déplace vers il est préférable d'utiliser mingw-w64.org mingw-w64.org )

Instructions détaillées:
1. Téléchargez le archives
2. Décompressez quelque part sous Cygwin. Dans mon cas, le répertoire Cygwin haut niveau est C:\cygwin, j'extrait le paquet dans le répertoire mingw, et a fini avec le contenu suivant dans C:\cygwin\mingw (qui est visible sous Cygwin /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. Maintenant, compiler du code C ++. Je:

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

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

Et compiler comme ceci:

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

4. Enfin, vérifiez le résultat est un ordinateur Windows / x 64 exécutable, en exécutant 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

Autres conseils

docs gcc disent:

  

Ces commutateurs `-m » sont pris en charge   Outre ce qui précède sur AMD x86-64   processeurs dans un environnement 64 bits.

     

-m32   -m64 Générer du code pour un environnement 32 bits ou 64 bits. Le 32 bits   environnement fixe int, long et pointeur   à 32 bits et génère un code qui   fonctionne sur tout système i386. Les 64 bits   ensembles d'environnement int à 32 bits et   longue et pointeur sur 64 bits et   génère du code pour le x86-64 d'AMD   l'architecture.

Notez que cela va vous rendre fou, je pense, si MinGW il fait vraiment de cette façon, puisque normalement sur Windows 64 est longue de 32 bits et à long est long le pointeur de la taille 64 bits le type.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top