プロが教えるわが家の防犯対策術!

GCCのコンパイラに関して、パスは通っているのにエラーが発生します。



プログラムはこちらです。

   #include

int main(void){
printf("Hello world!");
return 0;
}    

エラーが長かったのでこちらに載せました。
https://pastebin.com/hbZcTR4t

ヘッダファイルがないわけではないということはパスは通っていると思うのですが、解決方法が昨日からいくつかのサイトをはしごしながら考えたり実行しているのですがうまく実行ファイルが得られません。どうかお力を貸していただけないでしょうか?

質問者からの補足コメント

  • #include <stdio.h>です。
    コピーミスです。ごめんなさい。

      補足日時:2018/03/29 15:01

A 回答 (2件)

#include <stdio.h>


ではなくて?
ただのコピーミス?
    • good
    • 0
この回答へのお礼

ごめんなさい。
#include <stdio.h>
です!
コピーミスです!

お礼日時:2018/03/29 15:00

mingw環境のstdio.hを書き換えたあるいは何か別のファイルで上書きしてないでしょうか?



crtdefs.hは純粋なMingw環境にないヘッダファイルですが、
stdio.hの中でそれを読んでいるようです。
ぐぐるとcrtdefs.hはcuda関連のヘッダのようですが、
この中で__int64とか__time64とかの型を使おうとして、
その定義がないとコンパイラから怒られているように読めます。

一連の投稿でnvccで何かされようとしているようですが、
こちらの環境のstdio.hというか、include環境を上書きされていないでしょうか。

それからぐぐると
__int64はVisual C/C++でサポートされる整数型です。
mingwの環境ではサポートされるのかはよくわからないです。
nvccでoファイルを生成するにはVisual C/C++環境が必要なのかと思ったら
下記を見るとやはりそうでした。
https://qiita.com/wazakkyd/items/ab79920b22b24b3 …

環境をどこまで戻せるかわかりませんが、
一度、mingw、cuda環境をアンインストールして
再度、クリーンにインストールした方がよいと思います。
とりあえず、mingwをクリーンにインストールすれば、
この問題については解決すると思います。

それから、cuda環境については、
Visual Studio 2017 Community版とCuda環境を再度インストールした上で、
Visual Studioの統合環境からCudaの環境を使うようにすればよいと思います。
どうしてもコマンドラインベースで使いたいなら、
コンパイラオプションを理解しないと難しいでしょう。

それから
先の質問でnvccをmingwで使えるのかというのがありましたが、
回答の通りmingwのライブラリをリンクするのは可能ですが、
上記よりmingwをコンパイラとしては使えません。
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!