• ベストアンサー

WindowsアプリケーションをMacで作れなくて困っていますて

 ダウンロードした自作アプリケーションにWindowsでつくられた自作アプリケーションのC言語ソースがついていました。そこで、Mac OS Xで同じ物を作ろうと思いソースをコピー&ペーストしビルドして実行をしましたがエラーとなってしまいました。  Windows C言語とMac C言語は何か違う物なのでしょうか?ご回答お願いします

noname#71253
noname#71253

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

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.4

> Windows C言語とMac C言語は何か違う物なのでしょうか? C言語自体はどちらの環境でも基本的に違わないと思っていいです。 標準Cライブラリ (参考URLを参照) の機能だけを使ってプログラムを書けば、WindowsとMac OS Xとどちらでもビルド・実行できるものを作れます。 しかし、標準Cライブラリの範囲を超えてWindowsに固有の機能を使っているCプログラムであれば、そのままではMac OS Xでビルドすることはできません。 たとえば、Windows用のCプログラムではwindows.hというヘッダファイルをincludeしている場合が多いのですが、このヘッダファイルは標準CライブラリもMac OS Xにもありません。もちろん、ヘッダファイルだけをWindowsからコピーしてきても無駄です。

参考URL:
http://ja.wikipedia.org/wiki/%E6%A8%99%E6%BA%96C%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA
noname#71253
質問者

補足

分かりやすい回答ありがとうございました。 皆さんの回答をみていると元のプログラムのソースから自分で作らないといけないということですか。引き続きご回答お願いします。

その他の回答 (5)

  • salsberry
  • ベストアンサー率69% (495/711)
回答No.6

#4です。 > 元のプログラムのソースから自分で作らないといけないということですか。 > 引き続きご回答お願いします。 と言われましても、それを判断するのに必要な情報が質問者から提供されていないので無理です。 そもそも、ビルドできたのかできなかったのかさえ曖昧なままです。 たとえば、 ・そのダウンロードしたアプリケーションの名前やURL ・「エラーになってしまいました」というそのエラーの内容 あたりを投稿していただければ進展があるかもしれません。

  • pick52
  • ベストアンサー率35% (166/466)
回答No.5

ビルドできたのであれば、基本的にはソース自体には問題がないと いう事だと思います。 windows.hなどのWinAPIやCOMとかATL/WTLなどの機能を使用している 場合はそもそもコンパイルできませんから。 ビルド(コンパイルとリンク)ができたならC/C++標準ライブラリだけで 構築されていたのだと思います。 ただ、標準ライブラリだけで作られていてもバイナリ上はまったく 互換性がないのでバイナリや機械語などの処理部分を持っていると 正常に動作しないと思います。 あとは、OSのシステムコールとかを呼び出している場合も正常に 動作しないことがあると思います。

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.3

そもそも、 > エラーとなってしまいました。 どんなエラーが出たを提示していないところに問題がありそうです。 エラーメッセージの全文を正確に載せてください。

noname#71253
質問者

補足

確かに問題がありました。 Xcode Toolsというソフトを使っているのですが、そのソフトは、下の方のバーにエラーが出ているというマーク『×』がでているだけです。ちなみに20個です。 自分で一から作った方がよいのでしょうか・・・。

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.2

いや、でも、 > ビルドして実行をしましたがエラーとなってしまいました。 こう書かれてますので、ビルドはできたけど実行できなかった、 と解釈するのが自然であるような気が…。 実際のところどうなんでしょ? ビルドはできたんですか? >質問者さん

noname#71253
質問者

補足

すみません!説明不足でした! ビルドして実行というのはボタンが二つともいっしょになっているソフトを使っているのでビルドして実行という書き方をしています。ビルドだけのボタンがあり、それを押すとちゃんとできてるみたいです。

  • aigaion
  • ベストアンサー率47% (287/608)
回答No.1

Windows特有の機能を呼び出しているC言語プログラムのソースコードを 他のOSでコンパイルすることはできませんよ。

noname#71253
質問者

補足

aigaionさんの回答をみると、やっぱり自分で作らないといけないということですね。

関連するQ&A

  • Windowsアプリケーションが作りたいのですが

    /* OS==XPpro コンパイラー==Borland C++5.5  */ #include <windows.h> で Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照) となってexeファイルができません。 解決法を教えてください。 C言語歴2日

  • PICでLEDの点滅について

    http://okwave.jp/qa/q2987225.html を参考にして、C言語で作成しようとしているときに、コピーアンドペーストしたにもかかわらず、ビルドは成功しますが、LEDが点滅しません。何が悪いのか見当がつきません。ただ、いろいろなソースを試してみましたが、ビルドは成功しますが実行時に期待通りに動きません。どうもコンパイラの設定辺りが怪しいのですが、どなたかわかる方が居られたらアドバイスをいただけますようよろしくお願いします。

  • Windowsアプリケーションを作れるようになるには…?

    漠然とした質問なのですが、Windowsアプリケーションを作れるようになるには、どういった道筋をたどればいいのでしょうか? C言語は勉強したのですが、その先へなかなか進めません。Windowsプログラミング=Visual C++を使えればいいのかなと、これもまた漠然と思っているのですが、本のコードや実際にVisual C++を動かして、テンプレートのコードなどを読むと(おそらく)C++で書かれていて、読むことができません。 まずC++を勉強して、Visual C++の使い方を覚える、といった具合なのでしょうか?また、おすすめの書籍などありましたら、教えていただけると嬉しいです。 よろしくお願いします。

  • windowsアプリケーションを作る言語は何がいいですか?

    (以下の文章で使っている言葉が正しくないことは, 大目に見てください.) 仕事でwindowsで動く,GUIアプリケーションを作るように言われました. 求められているシステムは, 入力が日記のような文章で,その中の特定の1,2文を出力するものです.. アプリケーションを作る言語を調べたところ, visual c++, borand c++などがあることが分かりました. ここで上2つはそれぞれ,どのような違いがあるのでしょうか? また,他の言語でお勧めのものがありましたら,合わせて教えてください. どうぞお願いします.

  • Windowsアプリケーションをどうしても作りたいのですが

    /* OS==XP コンパイラー==Borland C++5.5 */ #include<windows.h> int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , LPSTR lpCmdLine , int nCmdShow ) { return 0; } で Error: 外部シンボル '_main' が未解決(C:\BORLAND\BCC55\LIB\C0X32.OBJ が参照) となるのでexeファイルができません。 解決法を是非教えてください。 C言語歴2日+1H

  • アプリケーションのインストールができない。

    この前、あるアプリケーションはダウンロードして起動ができなかったので、その会社に電話をしたところ、たしか「インストーラファイル」というものが壊れているとの宣告をされまして。 Windows Installer CleanUp ユーティリティをマイクロソフトダウンロードセンターからダウンロードしようとしたところ、 画面中央に スクリプト c:\・・・・・・・\Startmsi.vbs 行:17 文字:1 エラー:書き込みできません。 コード:800A0046 ソース:Microsoft VBScript 実行時エラー という窓が出てきてダウンロードできません。 どうすればこのような事態を回避できますでしょうか。 PCについてあまり詳しくないので、こういうエラーが出てくると戸惑ってしまって何もできません・・・ ちなみに使用PCのメーカーはSOTECでOSはVISTAです。

  • Visual Studio で実行ファイルが作れません

    C言語の勉強のため、VisualStudio2005standard を初めて使い始めましたが、ビルドできたのに実行ファイルができません。 ファイル→新しいプロジェクト→プロジェクトの種類→VCC++→win32→コンソールアプリケーション→プロジェクト名の入力→アプリケーションの設定→完了 このように操作したら、ソースフォルダの下に拡張子 .cpp のC++のひな形ができたので、それにソースを書いて、拡張子を .c に替えて保存し、ビルドしたらエラーはありませんでした。 しかし、オブジェクトファイルまたは実行ファイルは作成されていず、メニューの実行コマンドも無効の表示で、実行できませんでした。 操作の誤り、何らかの設定の必要があればご指摘いただきたいです。 よろしくお願いします。

  • マルチスレッドのやり方

    MacでC言語の勉強をしています。 WindowsでBASICのプログラム経験が多少あり、 C言語のサイトも参考にしていたので、Macでも同じように出来るかな? と思っていると、出来ませんでした。 CreateThread関数を使おうとしていたのですが、Cではwindows.hのようなファイルを参考にしたサイトではインクルードさせていたのでコピーペーストし、 createthreadとしたのですが、(おそらく)「windows.hのようなファイルはない」のようなエラーが出ます。 Macではマルチスレッドは使用できないのでしょうか。 それともほかのやり方があるのでしょうか。 すいませんがご教示いただけると幸いです。 よろしくお願いします。

  • .NET Framework 1.1について

    あるフリーウェアをダウンロードしてインストールしましたが、実行時にエラーが出て起動できません。そのアプリケーションはイタリアの物で、英語版をダウンロードしました。.NET Framework 1.1が必要とのことで、こちらもインストールしましたが、以下のようなエラーが出て起動ができません。どうすればよいでしょうか。OSは2000です。  「共通言語ランタイム デバッグサービス 処理 ID=0x728(1832)、スレッドID=0x65c(1628)」 こちらでデバッグの処理を実行しようとしましたが、「デバッガが見つかりませんでした。」と出て、うまくいかないようです。 問題がアプリケーションの方か.NET Frameworkかどちらにあるのか知りたいです。

  • Visual C++でC言語の基礎学習

    Visual C++を使ったC言語についての質問です。 (アプリケーションの作成ではなく、コマンドプロンプト上で起動する基礎的な文法の学習です) Win32コンソール プロジェクトを作成し、そのプロジェクトの中でCのソースファイルを作成して実行確認をしようと思っています。 プロジェクト内のソースファイルが1つだけだと正常にビルドできますが、2つ以上のソースファイルを作成してビルドすると 「1 つ以上の複数回定義されているシンボルが見つかりました。」 というエラーがでてしまい、実行することができません。 新たにWin32コンソール プロジェクトを作成し、その中でソースファイルを作成しなければ実行できないのでしょうか? よろしくお願いします。