🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Nim

Nimは、静的型付けプログラミング言語。Pythonの生産性でありながら、C言語のような高いパフォーマンスも持ち併せます。さらに自由度の高い言語で拡張性も重視されています。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Q&A

解決済

1回答

1518閲覧

コンパイル時のアイコン指定でエラー

sakuramochi_py

総合スコア32

Nim

Nimは、静的型付けプログラミング言語。Pythonの生産性でありながら、C言語のような高いパフォーマンスも持ち併せます。さらに自由度の高い言語で拡張性も重視されています。

GCC

GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

0グッド

0クリップ

投稿2021/03/11 07:37

編集2021/03/11 07:44

#分からないこと
Nimでアイコン付きのプログラムをコンパイルしようとしたが、よくわからないエラーが出てしまった。解決方法がわからない

#コード
nim_icon.rc

rc

1demo ICON "nim_icon.ico"

cmd

1windres nim_icon.rc -o nim_icon.o

でnim_icon.oを作成

本体 nim_icon.nim

Nim

1{.link: "nim_icon.o"}

実行

cmd

1nim c nim_icon.nim

#エラー

Error

1nim_icon.o' is incompatible with i386:x86-64 output

#試したこと
このサイト
を参考にしてみたが結果変わらず

#環境
nim 1.4.4
windows10

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

エラーメッセージはリンカが出しています。 オブジェクトファイルが 32 ビット版であるために 64 ビット用の実行ファイルと互換性が無いという内容です。

windres のオプションとして -O pe-x86-64 を加えてみてください。

投稿2021/03/11 08:13

SaitoAtsushi

総合スコア5684

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakuramochi_py

2021/03/11 11:23

windres: unknown format type `pe-x86-64' とでてきました。
SaitoAtsushi

2021/03/11 12:36

インストールしたものが正しくないようです。 Nim のほかに GCC を含む Gnu ツールチェインを入れたかと思いますが、どれをいれましたか? 導入したものを具体的に述べてください。
sakuramochi_py

2021/03/11 13:50

おそらくMingGWですかね。そういう系には疎いのですが、C++をコンパイルするためのPATHを入れた記憶があります。これを無くせばいいのでしょうか。
SaitoAtsushi

2021/03/11 16:27

Nim はその性質上、 GCC (以外も選択はできるようですが) およびそれが依存する GNU ツールチェインに依存しています。 つまり Windows では GNU ツールチェインの Windows 版である MinGW を導入しないと Nim で書かれたプログラムを実行ファイルにすることは出来ません。 Nim の公式サイトにも MinGW のパッケージが置いてあります。 Nim にとって MinGW は必要なものなのです。 ですが、 MinGW のパッケージにも色々と種類があり、 Nim の側が想定しているものと食い違うと組み合わせられないこともあります。 基本的には Nim のサイトで提供している MinGW を使うべきです。 そしてもちろん Nim が 64 ビット版であれば MinGW も 64 ビット版でなければおかしなことになるでしょう。 Nim のサイトにある MinGW は入れましたか? その上で C++ 用に別途入れた MinGW と競合してしまったのか、それとも MinGW は C++ 用に入れたものだけしかなくそれが使われていたのかでも状況は異なります。
sakuramochi_py

2021/03/12 01:09

なるほど、丁寧にありがとうございます。 公式のNimのダウンロードサイトからダウンロードしたので正しいMinGWがインストールされていると思いますが、C++の時にダウンロードしたMinGWと被ってしまっているのかもしれません。 PATHなどを調べて一旦すべてのMinGWを取り除いてから再インストールしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問