• ベストアンサー

コンパイルについて

こちらのサイト http://www.ohmsha.co.jp/data/link/978-4-274-20398-5/ で公開されているc++のソースファイルなのですが、 このファイルをコンパイル出来るフリーのc++のコンパイルソフトはございますか? microsoft visual c++.netで動作確認済みと記載されており、 やはりこちらでしかコンパイル出来ないのでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jgk
  • ベストアンサー率75% (104/138)
回答No.4

よく見たら、おかしいですねこのソース。new、deleteでC++の機能を使ってるのに、拡張子が.cとか… このバージョンのVC++は使ったこと無いのですが、それより古いのや新しいのの動作から見て、 著者の方が使ってるコンパイラでも同様にエラーがでて普通にコンパイルできないはずです。 VC++の場合拡張子でC言語、C++を切り替えるので.cから.cppにリネームまたは/TPオプションでC++としてコンパイル、 5-3、5-4、5-5、5-7、5-8ではsrand、randが使われてるので#include <stdlib.h>の追加が必要ですね。

riba777
質問者

お礼

おかげさまでコンパイルする事が出来ました。 初歩的な事にも関わらず付き合って頂いて本当にありがとうございました。 今回で更にBCCの用途を勉強することが出来たので大変感謝しております。

その他の回答 (3)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.3

よく見たら new を使ってますね CではなくC++でした 訂正します 確認のために5-8.cをコンパイルしてみましたがstdlib.hがないのでsrand( )とrand( )でエラーが出ました #include <stdlib.h> をプログラムに追加して拡張子を .cpp にすればBCCでもコンパイルできました

riba777
質問者

お礼

おかげさまでコンパイルすることが出来ました。 BCCでもC++の拡張子にリネームすれば コンパイルが出来ると言うのを初めて知り勉強になりました。 長々と付き合って頂いて本当にありがとうございました。

  • php504
  • ベストアンサー率42% (926/2160)
回答No.2

C++ではなくて標準的なCで書かれているようです これをコンパイルできないコンパイラのほうが珍しいと思います WindowsならMinGWやcygwinのgccやBorlandのBCCやVisual C++ 2008 ExpressEditionなどがフリーで使えます。

riba777
質問者

お礼

c++の表現も含まれていると思っておりました・・・ フリーのBorlandのBCCを用いていつもコンパイルをしているのですが、 今回はこちらのソースファイルを展開できなかったので。 紹介して頂いたソフトを用いてコンパイルしてみようと思います。 ありがとうございました。

  • jgk
  • ベストアンサー率75% (104/138)
回答No.1

ぱっとみたんじでは、どんなコンパイラでもコンパイルできそうな内容ですね。 作者がそのコンパイラでしかコンパイルしてないだけでしょう。 環境がWindowsでしたら、Microsoft Visual C++ .NETの バージョンアップ版の Microsoft Visual C++ 2008 Express Editionを使えば問題ないんじゃないかと思います。 http://www.microsoft.com/japan/msdn/vstudio/Express/

riba777
質問者

お礼

ありがとうございます。 そちらのアプリケーションを実装してみてコンパイル(ビルド)してみたのですが、やはりエラーが出てしまいますね。 著者のかたが用いているほうを使ったほうがよろしいのでしょうかね?

関連するQ&A

  • コンパイルができない!?

    ファイルA:¥Text1.txtの拡張子に関連したコンパイルツールがないためコンパイルできません。とでたのですが、どうすればコンパイルできるようになるのですか?ちなみに、Microsoft eMbedded Visual C++を使っています。

  • うまくコンパイルできません

    初心者です。 家のPCでC言語のプログラミングをやろうと思ってVisual C++ 2008というフリーソフトをダウンロードしました。 Cプログラミングの本に書いてあるとおりソースファイルを作ってコンパイルしてみたのですがどうしてもうまく行かないので質問させていただきます。 エラー内容は次の通りです。 C:\cwork>cl test1.c Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. test1.c Microsoft (R) Incremental Linker Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. /out:test1.exe test1.obj LINK : fatal error LNK1104: ファイル 'kernel32.lib' を開くことができません。 以上です。何が悪いのかわかる方教えてください。 何か足りないところがあれば言って下さい。よろしくお願いします。

  • コンパイルできない・・

    Microsoft Visual Studio 10.0を使ってwindows7上でC原語ソースをコンパイルできません。 オススメのコンパイラー、設定方法など教えて欲しいです。 プログラミングの勉強をしたいのでお願いします。

  • .NETでのコンパイルの方法。(C)

    Microsoft Visual C++でCのコンパイル・実行方法を教えてください。 環境 WindowsXP Pro Visual Stusio ,NET DevelopmentEnvironmental(?) 雑誌についていた60日間の評価版です。 学校でCをし始めたので、これを機に.NETを購入(アカデミック版) しようと思っているのですが、.NET上でのコンパイル・実行の仕方が 分かりません。 今は6.0でのコンパイルorコマンドプロンプト上で行っています。 .NETでは「ファイル」-「新規作成」-「ファイル」-「ファイル」 -「C++ファイル」を選択し、保存時にファイルの種類を「c」にしている のですが、コンパイルの方法が分かりません。 (F7もできなさそうだし) ご存知の方がいらっしゃいましたら教えてください。

  • コンパイルできない

    c言語をはじめたばかりの初心者です。"typ.c"というソースファイルをメモ帳でつくって、コマンドプロンプト上でコンパイルしようとしたのですが、うまくいきませんでした。typ.cファイルの内容は *typ.c*/ #include <stdio.h> #include <stdlib.h> /*for exit()*/ int main(void) { FILE *fin, *fout; char buf[256]; char filename1[80], filename2[80]; printf("入力ファイル名="); gets(filename1); printf("出力ファイル名="); gets(filename2); fin = fopen(filename1, "r"); if (fin == NULL){ printf("%sをオープンできません\n", filename1); exit(1); } fout = fopen(filename2, "w"); if (fout == NULL){ printf("%sをオープンできません\n", filename2); exit(1); } while (fgets(buf, 256, fin) != NULL){ fputs(buf, fout); } fclose(fin); fclose(fout); return 0; } となっています。 いざコマンドプロンプト上でコンパイルしようとすると  C:Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(189) : error C20 27: 認識できない型'PostAttribute'が使れています。 c:\program files\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(71) : 'PreAttribute'の宣言を確認してください。 という注意書きが大量にでてきて最後に C:Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(239) : fatal err or C1003: プログラム内のエラーが100個を超えました。コンパイルは中断されます。                         となってしまいます。 使っているOSはwindows vista で コンパイラはMicrosoft Visual C++ 2008 Express Edition です。 どうしたらよいのかわかりません。 どうか教えてください。 説明に不足があればまた足しますのでよろしくお願いします。

  • コンパイルについて

    プログラミング超初心者です。 今年からプログラミングの授業があるので家のパソコンでもプログラミングの出来る環境を作ってみました。 エディタソフトはVisual C++2008を使用することにしました。コンパイラソフトは学校と同じcygwinをインストールしてみました。 質問なんですがVisual C++2008でソースコードを入力し、それをcygwinでコンパイルすることは出来るのでしょうか? 理由はVisual C++2008でコンパイル出来ることは、わかってるのですが学校でcygwinを使用してるので慣れるために別々に使用したいからです。もし出来るのならばやり方を教えてもらえないでしょうか? ちなみに学校では、エディタソフトが秀丸を使用しコンパイラソフトはcygwinを使用してます。 もし他におすすめのソフトがあれば教えてもらうと助かります。よろしくお願いします。

  • gccでコンパイルされた実行ソフトのライセンスについて。

    gccでコンパイルしたソフトをフリーではなく商用で販売しようとしています。(開発ソフト自身はLinux上で動作するもの)この場合、gcc自体はフリーソフトとしてGPLで適応されていますが、gccでコンパイルされた実行ソフトには著作権を持たせたり、ソースの公開をせずに商用目的で販売することは可能でしょうか?

  • Tftpd32のソースファイルを開きたい

    フリーソフト(オープンソース)のTftpd32のソースファイルを開きたいのです。 http://tftpd32.jounin.net/tftpd32_download.html 上記URLにて、v3.25のソースファイルをDLし、 Visual C++ 2008 Express Edition にて、ソースは開くのですが、 コンパイルすると、エラーになってしまいます。 tftpd32のソースは、Visual C++ 2008用ではないのでしょうか? どなたか試された方がいらっしゃれば教えてください。

  • Visual C++ 2005のコンパイル方法

    Visual C++ 2005というソフトを使ってプログラミングをしているのですが、コンパイルの方法がわかりません。確か出力→デバッグ開始だっとような気がするんですが、デバッグができないのでコンパイルもできません。ちなみに元のソースは学校でLinuxでemacsを使用して作ったものなので、一からVisual C++ 2005で作ったものではありません。 回答お願いします

  • WiiYourself!をコンパイルできない

    WiiYourselfをVisualStadio2008(visual C++)でDemoフォルダのソースをコンパイルしようとしたのですがコンパイルエラーが100個以上出て失敗してしまいました(ソースは入手したときのままです)。エラーは以下のとおりです。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2065: '_In_' : 定義されていない識別子です。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2144: 構文エラー : '_EXCEPTION_RECORD' は ')' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(60) : error C2448: '_except_handler' : 関数の定義が間違っています。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(61) : error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(62) : error C2144: 構文エラー : '_CONTEXT' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(63) : error C2144: 構文エラー : 'void' は ';' によって先行されなければなりません。 1>c:\program files\microsoft visual studio 9.0\vc\include\excpt.h(64) : error C2059: 構文エラー : ')' 1>c:\winddk\7600.16385.0\inc\api\windef.h(49) : error C2143: 構文エラー : ';' が '*' の前にありません。    ........ 開発環境は以下の通りです Windows vista WDM (インクルード(inc/api) ライブラリ(lib/wxp/i386)をvisual C++に設定している) WiiYourself1.01a とWiiYourself!_1.14b両方試しましたが同じ結果でした 原因をご存知の方がいらっしゃたらどうか書き込みお願いします。 よろしくお願いします。

専門家に質問してみよう