• 締切済み

windowsでのコンパイラの指定

macにて下記の指定でコンパイル可能なのですが、 windowsにてコンパイルできず困っています。 -std=c++11 -stdlib=libc++ 環境はwindows8でwindows SDK 7.1をいれています。 windowsでの開発環境がよくわかっていないのですが、 上記の指定はwindowsではどうなるのでしょうか? よろしくお願い致します。

みんなの回答

  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.5

申し訳ありませんVisualC++2010、C++11に一部対応してるといえばしてますね。 ただ正確にいえばC++11策定段階のC++0xに一部対応ですけど(C++11は2011年策定なのでVisualC++2010出荷時にはまだない)。

noname#204072
noname#204072
回答No.4

Visual Stdio 2010でも一部機能はサポートされているようですね。 "C++11 の機能 (Modern C++) のサポート" http://msdn.microsoft.com/ja-jp/library/hh567368.aspx ただ、上記の質問が出るという事は、本当に C++11 の機能が必要かどうか? また、mac独自の機能を使っていないか、どうか? Visual Stdioだと、パスが通っていれば、 > cl /? で、Helpが表示されるので、参考にしましょう。 また、"C/C++ プログラムのコンパイル" http://msdn.microsoft.com/ja-jp/library/wk21sfcf.aspx にも説明がありますね。 (Visual Stdio 2013ですが) gccについては、詳しくないですが、確か、Firefoxが gccだったか? (以前、Buildした時は) Cygwin環境が、ちょっとクセがあって、?でした。 今、検索すると、 MinGWなんてのもあるようです。

  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.3

>はい。c++11とかlibc++がないのでエラーがでていると思っています。 「思っています」とかではなく -std=c++11 -stdlib=libc++ が、どういう意味かを調べて考えましょうよ。 macは所持していませんがC++コンパイラはllvmだったかと思います。 私が使用しているFreeBSDもコンパイラはllvmになってますのでman ccから抜粋しておきます。 > -std=language > Specify the language standard to compile for. > > -stdlib=library > Specify the C++ standard library to use; supported options are > libstdc++ and libc++. -std=languageは言語規格指定です。 -std=c++11はコンパイラにC++11(ISO/IEC 14882:2011)の仕様でコンパイラが動作するようにする指定ですがVisualC++2010はC++11には対応してませんので該当するオプションが存在しません(C++11対応はVisualC++2012から一部対応)。 -stdlib=libraryはC++の標準C++ライブラリとしてlibc++,libstdc++のどちらを使うかの指定です。 なので-stdlib=libstdc++はlibstdc++を標準C++ライブラリとして使用する指定なわけですがVisualC++系はlibstdc++というライブラリはありませんから指定のしようがありません。 Macの開発環境ならおわかりになるようなので例えで書きますが「MacのC++で、MSVCP110.DLLをリンクするにはどうすればいいですか」という質問された場合、どう答えますか?(MSVCP110.DLLはVisualC++2010の標準C++ライブラリです) >そもそも指定し直すことができないということでしょうか? そういう事です。 ですので対応方法としては -std=c++11 ソースのC++11規格で書かれている所をVisualC++2010でコンパイルでいるように書き直す。 -stdlib=libstdc++ そもそもどういった理由でlibstdc++を使用するのかをまずは調べる。 理由によって、ソースを書き直したりlibstdc++をVisualC++2010向けに移植したり色々。

noname#212058
noname#212058
回答No.2

MAC上ではGCCを使用して開発されているものと推察 します。Windows SDK 7.1 には GCC の開発環境は 入っていませんので、これではコンパイルできません。 別途 Windows 版の GCC 開発環境をインストールして 試してみてはいかがでしょうか。(そもそも存在するのか どうかは私は寡聞にして知りませんが…)

  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.1

windows SDK 7.1ということはVisual C++ 2010なんだと思いますが -std=c++11 対応するオプションはありません。 -stdlib=libc++ libc++ という名前のライブラリはVisualC++にはありません。

ok_pumpkin
質問者

お礼

ありがとうございます。 はい。c++11とかlibc++がないのでエラーがでていると思っています。 これをVisual C++ 2010で使用しているコンパイラに指定しなおせばよいと思っているのですが、 そもそも指定し直すことができないということでしょうか?

関連するQ&A

  • クライアント領域を指定してウィンドウを作る

    CreateWindowを使って、ウィンドウを作るとタイトルバーや、外枠の大きさが含まれた値でウィンドウが生成されますよね。 そこを生成するウィンドウのクライアント領域の大きさを指定して生成したいのですが、なにか良い方法はないでしょうか?? 開発環境はvisualC.net & SDK です。

  • 対応Cコンパイラについて [C/OCI/HP]

    OCI(Oracle Call Interface)を用いてOracleクライアントの開発を行います。 下記環境で対応するCコンパイラを教えていただけますでしょうか?(HP 11.0に付属のCコンパイラで大丈夫でしょうか?) ・Oracle 8i ・HP 11.0 ※ ・Borland C++ Compiler ・Oracle 8i ・Windows 2000 でサンプルプログラムをコンパイルしようとしたところ、OWLというライブラリがないためコンパイルできませんでした。同じようなことがHPの場合にもあるのかと思い、本質問をさせていただいています。 よろしくお願い致します。

  • Eclipseがコンパイラを用意している?

    Windowsで、Eclipse3.0.1を使用してJavaを学習しています。 ひとつ疑問に思ったことがあります。 Javaのコンパイラは、Eclipseが用意しているのでしょうか? 疑問に思った理由は、 コマンドプロンプトにて「javac 実在しないクラスファイル名など」と打ち込んでも 何も反応が無いからです。 正しいクラスファイル名を指定せよ、のようなメッセージが出るのかと思いきや、 「操作可能なプログラムまたはバッチ ファイルとして認識されていません。」とメッセージが出ます。 開発環境は、SDKをインストールしてから構築したのではなく、 Eclipseだけをインストールしています。 (もちろん、Eclipse上から、コンパイル、実行出来ます) ちなみに、 アプリケーションの追加・削除には、 「Java 2 Runtime Environment. SE v1.4.2_06」 「J2SE Runtime Environment 5.0 Update 2」 がありました。 (SDK「j2sdk-1_4_1_07-windows-i586.exe」はインストールしていません) 「JDK」とか「SDK」とか「J2SE」とかが何の略称か多少分っていても、 どれかに含まれているものかが良く分っていないのも、 疑問に思う理由のひとつかもしれません。 環境 OS: WindowsXP SP2 HOME Java IDE: Eclipse3.0.1 JRE(実行環境バージョン):この辺りもよく分りません SDK(開発環境バージョン):この辺りもよく分りません

    • ベストアンサー
    • Java
  • 楽なコンパイラを探しています

    こんにちは。 プログラムに関して、初歩的な質問をさせて頂きます。 現在、C言語でゲームの開発をしようと励んでおります。 その第一歩としてBorland C++ Compilerをインストールしたのですが、 毎回コマンドプロンプトからコンパイルするのが面倒です。 visual C++のような開発環境で開発を進めるのが良いと読んだのですが、 初心者に優しいオススメの開発環境はありませんか?

  • コンパイラの使い方

    Borland C++ Compilerというコンパイラをダウンロードしたのですが、 使い方がわかりません。 エディターはxyzzyを使おうと思っているのですが、このエディターに書いたコードをどのようにコンパイルするのかがわかりません。 また、xyzzyを総合開発環境のように使うことが出来るとどこかのサイトで見たような気がしますが、そのような使い方も出来るのでしょうか? 初歩的な質問ですが、よろしくお願いします。

  • gccコンパイラー

    今、gccでコンパイルするc言語のコンパイラーを探しています。 フリーでダウンロードできるいいコンパイラーはないでしょうか。 お勧めなどがありましたら教えてほしいです。 あと、C言語ではgccやbcc等のコンパイラーで プログラムソースの書き方容が変わったりするものなのでしょうか? 一応、ボーランド?のコンパイラーは持ってます。 ただ、今度OJTでUNIX環境のc言語開発の現場に行く事になり gccでコンパイルするもので勉強しとくようにいわれています。 宜しくお願いします。

  • USBで持ち運びできるWindowsプログラミングの開発環境

    USBで持ち運びできるWindowsプログラミングの開発環境を探しています。 自宅ではMicrosoft Platform SDKを利用してVC++2005で開発しています。 学校でもWindowsプログラミングを行いたいのですが 学校にはVC++2005はインストールされているものの Microsoft Platform SDKがインストールされておらず Windowsアプリケーションを作成できません。 そこで、USBで開発環境を持ち運びできないかと考え 色々と探したのですが、見つかりませんでした。 ご存知の方いらっしゃいましたらよろしくお願いします。 備考 自宅:Windows XP Home Edition 学校:Windows XP Professional

  • Windows SDK for Windows VistaのDL

    Windows SDK for Windows VistaのDL Windowsプログラムで新たにSDKをDLしなくてはならなくなったのですが どこからDLすればいいのでしょうか? Windows SDKの日本語版をインストールしたいのですが、なかなか辿りつけません。 どこかにDLできるURLがあるはずなんですが、どこにあるのでしょうか? プログラムをビルドすると 「Show.CPP」と「Image.CPP」と「Music.CPP」がないとエラーメッセージが出る (.h系も)ので上記のSDKをDLすることになりました。 開発環境はVS2003.NETです。(OS XP 32bit)

  • cygwin gcc c99 での isnormal と strtold の使用

    Cygwinのgccで-std=c99オプションを付けて 以下のコードをコンパイルしようとしています。 #include <stdlib.h> #include <math.h> int main() { isnormal(0.123); strtold("0.123", NULL); return 0 ; } $> gcc -std=c99 test_strtold.c ですが、コンパイルできず、2つの関数とも'undefined reference'になります。 -std=c99を付けてコンパイルする方法または この記述と同等の別の記述がありましたらご教授願います。 よろしくお願いいたします。

  • 昔C言語で作成したAPが64ビット版OSで不動作

    以前C6とWindowsSDKで作成したソフトがWindows7 64ビットOS上で動きません。 XPモードでは動作します。 Windows7 64ビットOS上で動かしたいのですが、32ビット又は64ビットのコンパイラでコンパイルし直せば動くと思うのですが、なんせ昔の事なので最近の情報がよく解りません。 どなたかコンパイラの種類、SDKキット、LINKの種類等開発環境をどうすれば良いのか丁寧に教えて戴きたいのですがよろしくお願いします。