質問

私はCygwinのかMinGWのを使用してして、[OKだけど、私は64ビットコードではなく、32ビットで終わる必要があります。私は64ビットの管理のC#からDLLを呼び出すことになるためです。私が見つけ、64ビットのバイナリを作成するために、これらのツールを設定するための優れた参考文献に見えることはできません。私のCygwinをインストールして来たようGCCはバージョン4ではなく、バージョン3であった場合ます。

また、それはいいだろう

の代替は、プロセス間通信のいくつかの形態であろう。私はそれを研究、しかし、私は上記にレイアウトすることは、私が本当に欲しいものであるだろう。

役に立ちましたか?

解決

(単に解放)GCC-4.4.0に基づいて 64ビットMinGWのに、 、おそらくあなたの最善の策です。 (sourceforge.net上のMinGW-w64プロジェクトは、 mingw-w64.orgを使用することをお勧めしますmingw-w64.orgするために動いているので、 の)

詳細な手順:
1.ダウンロード<のhref = "http://sourceforge.net/project/downloading.php?group_id=202880&filename=mingw-w64-bin_i686-cygwin-1.5.25-15_20090514.tar.bz2&a=93736319" のrel =」 nofollowをnoreferrer ">アーカイブの
2. cygwinの下のどこかでそれを抽出します。私の場合には、最上位のCygwinディレクトリはC:\cygwinである、私はcygwinの下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。最後に、結果が稼働してdumpbin /headers a.exeにより、Windowsの/×64、実行可能であることを確認します:

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

他のヒント

<のhref = "http://gcc.gnu.org/onlinedocs/gcc-3.4.6/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options" のrel =」 noreferrer nofollowを言うの "> gccのドキュメントます:

  

これらの `-m」スイッチがでサポートされています   AMDのx86-64上の上記に加え   64ビット環境のプロセッサ。

     

-m32   -m64 32ビットまたは64ビット環境用のコードを生成します。 32ビット   環境はint型、longおよびポインタを設定し、   32ビット、コードを生成します   するi386システム上で実行されます。 64ビット   環境・セットは、32ビットにint型と   長いとポインタに64ビットと   AMDのx86-64のためのコードを生成し、   建築ます。

mingwのは、本当にそのようにしている場合、通常は長いのWindows 64上で32ビットで、長い長い64ビットのポインタ・サイズであるため、

それは狂気あなたを駆動するために起こっていることに注意してください、私は、と思います 種類ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top