[解決済み] Cgo: すみません、未実装です: 64ビットモードはコンパイルされていません。
2022-02-09 05:33:42
質問
現在、自分のGoプロジェクトにC言語のコードを追加しようとしています。
/*
#include <stdio.h>
void test() {
printf("hooola")
}
*/
import (
"C"
)
func MessageBox() {
C.test()
}
しかし、これは
cc1.exe: すみません、未実装です: 64ビットモードはコンパイルされていません。
を確認したところ、私の
g++
と
gcc
コンパイラで実行すると、すべてうまくいくようです。
g++ -v
はこれを返します。
C:\Users\ragga>g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=C:/Program\ Files/mingw-w64/x86_64-6.2.0-posix-seh-rt_v5-rev1/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/6.2.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-6.2.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw620/x86_64-620-posix-seh-rt_v5-rev1/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-isl-version-check --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw620/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw620/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw620/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw620/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-posix-seh-rev1, Built by MinGW-W64 project' --with-bugurl=http://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -I/c/mingw620/x86_64-620-posix-seh-rt_v5-rev1/mingw64/opt/include -I/c/mingw620/prerequisites/x86_64-zlib-static/include -I/c/mingw620/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -I/c/mingw620/x86_64-620-posix-seh-rt_v5-rev1/mingw64/opt/include -I/c/mingw620/prerequisites/x86_64-zlib-static/include -I/c/mingw620/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS= LDFLAGS='-pipe -L/c/mingw620/x86_64-620-posix-seh-rt_v5-rev1/mingw64/opt/lib -L/c/mingw620/prerequisites/x86_64-zlib-static/lib -L/c/mingw620/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: posix
gcc version 6.2.0 (x86_64-posix-seh-rev1, Built by MinGW-W64 project)
一方
gcc --version
はこれを返す
g:\Workspace\Go\src\github.com\raggaer\snak>gcc --version
gcc (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
どちらもmingw64bitsでインストールされているので、私の問題がどこから来ているのかよくわからないのですが?
解決方法は?
-
簡単な答え
多くのバージョンを試しましたが、32ビットと64ビットの両方で動作する唯一のバージョンはgo build
64ビットWindows OSではtdm64-gcc-5.1.0-2.exe
(を参照してください)。 tdm-gccのページ ).
にインストールすることができます。C:\TDM-GCC-64\
を追加しC:\TDM-GCC-64\bin
にPATH
(上 = または左)にあります。
-
をお試しください。
MinGW-w64 - 32ビットおよび64ビットWindows用
または
x64-4.8.1-release-posix-seh-rev5
.
このバージョンは、64ビットビルドでのみ正常に動作します(64ビットOS上では32ビットターゲットにはなりません)。
-
Windows OSの場合は、コマンドプロンプトを起動します。
cmd
(Linuxではターミナル) で、次のコマンドを実行します (whereis gcc
Linuxの場合)。where gcc
そして、複数のgccパスがある場合は、その順番を編集して、必要なものを一番上に置くか、他をすべて削除してください。
お役に立てれば幸いです。
関連
-
[解決済み] Go モジュールのローカル リポジトリとして Artifactory を使用する方法
-
[解決済み] Goをアンインストールする方法を教えてください。
-
[解決済み] キューの実装はありますか?
-
runnerw.exe: CreateProcess はエラー 216 で失敗しました。プロセスが終了し、終了コード 216 が表示された 実行するプロジェクトがこの例外をスローする
-
[解決済み] go getとgo installの違いは何ですか?
-
[解決済み] 全モジュールのアップデートを行う
-
[解決済み] Golangで定数mapを宣言するには?
-
[解決済み] ゼロ終端のバイト配列を文字列に変換するにはどうすればよいですか?
-
[解決済み] 2枚のスライスの等価性を確認する
-
[解決済み】Goはサードパーティ・パッケージをどのようにアップデートしますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Go: パニック: ランタイム エラー: 無効なメモリ アドレスまたは nil ポインタのデリファレンス
-
[解決済み] 関数呼び出しで「値として使用」される
-
[解決済み] GolangパッケージがGOROOTにない(/usr/local/go/src/packageName) [閉じた]。
-
コンパイル: バージョン "" は go ツールのバージョン "" と一致しません。
-
runnerw.exe: CreateProcess はエラー 216 で失敗しました。プロセスが終了し、終了コード 216 が表示された 実行するプロジェクトがこの例外をスローする
-
[解決済み] go getとgo installの違いは何ですか?
-
[解決済み] go getコマンドとgo mod downloadコマンドの違いは何ですか?
-
[解決済み] Goで部分文字列を抽出する
-
[解決済み】現在実行中のファイルのディレクトリを取得するには?
-
[解決済み】Goはサードパーティ・パッケージをどのようにアップデートしますか?