VC++ 2015 boost使用について

このQ&Aのポイント
  • VC++ 2015 boostを使ったプログラムを実行したいが、boostの導入に手間取っている。
  • boostのビルドは完了し、プロジェクトの設定も行ったが、エラーが出てプログラムが実行できない。
  • 正しい設定方法を知りたい。
回答を見る
  • ベストアンサー

VC++ 2015 boostの使用について

当方の環境は、 windows 7 visual studio community 2015 Eドライブ直下にboostフォルダあり です。 こちらのサイトのサンプルを実行したいのですが、boostの導入に手間取っています。 http://sfpgmr.hatenablog.jp/entry/wasapi-%E6%8E%92%E4%BB%96%E3%83%A2%E3%83%BC%E3%83%89%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%EF%BC%88%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%A2%E3%83%BC%E3%83%89%EF%BC%89 ここ(http://rexpit.blog29.fc2.com/blog-entry-89.html)を参考にboostのビルドまでは完了したと思います。 プロジェクトのプロパティページから 構成プロパティ→VC++ディレクトリで インクルードディレクトリに E:\boost ライブラリディレクトリに E:\boost\stage\lib を追加して実行しても「ソースファイルを開けません"cstdint.hpp"」などのエラーが出ます。 サンプルの#include <boost/cstdint.hpp>を#include <cstdint.hpp>に変更するなど試してみましたが同様でした。 どなたか正しい設定をご教授いただけると幸いです。

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

  • ベストアンサー
  • axsies
  • ベストアンサー率64% (38/59)
回答No.1

boostの全てのヘッダファイルは”boost/*”というように、boostというディレクトリの直下に入れるのが正式です。 ですので、 a.インクルードディレクトリのパスをE:\にする b.適当なディレクトリを作り(例えばE:\boost-1.58)、そこにboostフォルダを移動。更に、ライブラリディレクトリパスを変更する(E:\boost-1.58\boost\stage\libのように) などの方法で解決できると思います。

関連するQ&A

  • cygwinでのboost

    cygwin上でboostを用いたいんですが、うまくいきません。 test.cppで、#include<boost/ramdom.hpp>としており、 コマンドを、 $ g++ -I"C:\cygwin\usr\include\boost-1_33_1" test.cpp とすると boost/ramdom.hpp: No such file or directory となってしまいます。 ramdomがboost-1_33_1の中にあるのは確認してます。 いろいろ調べてみたんですが上手くいきません。 よろしくお願いします。

  • Cygwin boost

    Windows XP sp2 + Cygwin の C++ で正規表現を使いたく setup.exe で boost をインストールし、以下のコードをコンパイル($g++ regextest.cpp) したのですがエラーが出てしまいました。 コード: #include <boost/regex.hpp> #include <iostream> using namespace std; int main () { string str("Free Programming For Windows."); boost::regex reg("Free.+Windows\\."); if (boost::regex_match(str, reg)) { cout << "===> Matched." << endl; } else { cout << "===> Not matched." << endl; } return 0; } エラー: regextest.cpp:1:27: boost/regex.hpp: No such file or directory パスが通っていないようなのですが、どうしたらよいか分かりません。アドバイスいただけたら嬉しいです。 usr/include/boost-1_33_1 に boost/regex.hpp は確認できました。

  • boost::regexで、日本語に利用ついて

    boost_1_47を利用して、置換を行おうとしているのですが、「VIII」を置換しようとするとエラーになります。たぶん「5B」が入っているからかと思うのですが、どのように対処したらよいのでしょうか? #include <boost/regex.hpp> using namespace std; using namespace boost; const boost::regex str("VIII"); よろしくお願いします。

  • boostを利用したプログラムのコンパイルでエラー

    boostを初めて利用しようと思い、ファイルをダウンロードして、bjamを使ってインストールしました。そして以下のようなテスト用のプログラムを作成しました。 #include <boost/tokenizer.hpp> using namespace boost; int main(void) {   char_separator<char> sep(" \t\n");   tokenizer<char_separator<char> > tokens("aaa bbb ccc", sep);   return 0; } これをbcc32によりコンパイルすると、以下のようなエラーがいくつか発生してコンパイルができませんでした。 エラー E2489 c:\borland\bcc55\include\boost-1_33_1\boost/mpl/aux_/integral_wrapper.hpp 45: オプションコンテキスト応答深度の上限を超過: 再帰をチェックしてください なぜ、このようなエラーが出るのでしょうか。ちなみに、cygwin+gccではコンパイルおよび実行が可能でした。 ご存じの方がいらっしゃったらよろしくお願いします。(WinXPです)

  • boost::formatの値をstring型にコピーしたい

    boost::formatの値をstring型にコピーしたいのですが、うまくいきません。boost自体初めてで以下のサイトからダウンロードし、展開後VS2005のVCのインクルードフォルダーにboostフォルダーをまるまるコピーしただけですが・・・ http://sourceforge.net/project/showfiles.php?group_id=7586 boost 1.34.1 #include <iostream> #include <boost/format.hpp> using namespace std; using boost::format; void main(){ double x = 1.234; string str("abc"); //cout << format("%10.3f, [%16s]") % x % str << endl; // サンプルはこうでした。 // いったんstring型に入れて表示させたい。 string y; y = boost::format("%10.3f, [%16s]") % x % str; // エラー箇所 std::cout << y << std::endl; }

  • C言語のプログラミングで文字コードを表示する方法を教えてください。

    ファイル名<sample-utf8.txt> 32 30 30 38 e5 b9 b4 35 e6 9c 88 32 37 e6 97 a5 0d 0a ef bc 92 ef bc 90 ef bc 90 ef bc 98 e5 b9 b4 ef bc 95 e6 9c 88 ef bc 92 ef bc 97 e6 97 a5 0d 0a e8 a8 88 e7 ae 97 e6 a9 9f e3 82 b7 e3 82 b9 e3 83 86 e3 83 a0 ef bc 91 テキストメモの文字を表示するプログラムをC言語で作りたいのですがわかりません。どなたかソースコードを教えていただけると助かります。よろしくお願いします。

  • 電力が足りないBlu-rayドライブ

    ノートPCに繋いでるBlu-rayドライブがBoostをハブに繋いでても電力不足をおこし赤ランプがついて再生できないのでBoostのUSBをUSBが付いてるアダプタにつないで直接コンセントから電力を補おうという案を立ててるんですが成功しますかね・・・? 使い物はこういうのです http://www.amazon.co.jp/PLANEX-%E3%80%8C%E5%85%85%E9%9B%BB%E4%B8%87%E8%83%BD%E3%80%8DiPod-%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%AF%E3%83%9E%E3%83%B3%E5%AF%BE%E5%BF%9C-USB%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E5%85%85%E9%9B%BB%E5%99%A8-PL-UCHG01/dp/B000L22QGI/ref=sr_1_10?ie=UTF8&qid=1378088529&sr=8-10&keywords=%EF%BC%B5%EF%BC%B3%EF%BC%A2%E3%80%80%EF%BC%A1%EF%BC%A3%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF セルパワーのUSBハブは高くてまた高い金だすの嫌だからこれでやろうと思ってるんですけど・・・・・

  • boost::lexical_castで16進数文字列を数値に変換する

    boost::lexical_castで16進数文字列を数値に変換する 次のコードで試しましたが実行時例外になります。 16進数文字列をlexical_castで扱う方法を教えてください。 #include <boost/lexical_cast.hpp> string ss = "0x1234"; int n = boost::lexical_cast<int>(ss); よろしくお願いします。

  • 画面遷移したVCから戻る時に元のVCにデータを渡す

    ObjectiveCを用いてiPhoneアプリ製作の勉強をしています。 ViewController上に設置したボタンで接続したTableViewControllerのセルをタッチしたとき、 そのセルの情報を元のViewControllerのラベルに表示するという処理を組みたいのですが、うまく行きません。 こちらのサイトを参考にしています。 http://kikuchy.hatenablog.com/entry/2013/11/04/Segue_%E3%81%A7%E7%94%BB%E9%9D%A2%E9%81%B7%E7%A7%BB%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AB%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%82%92%E6%B8%A1%E3%81%97%E3%81%A6%E3%81%BF TableViewControllerのセルがタッチされた時、prepareForSegueメソッドの中のLogが表示されないので、このメソッドが実行されていないように思います。 以下にコードを晒します。 ViewController.m上でproperty宣言されているUILabel *rowNumはストーリーボード上で ViewControllerと接続されています。 ■ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property NSInteger rowNumber; @end ■ViewController.m http://www.dotup.org/uploda/www.dotup.org4992395.txt ■selectTableViewController.h http://www.dotup.org/uploda/www.dotup.org4992392.txt ■selectTableViewController.m http://www.dotup.org/uploda/www.dotup.org4992394.txt よろしくお願いします。

  • xpressive.hpp をオープンできない

    現在、code gear c++ builder 2009 でboostに関するプログラムを勉強してます。 正規表現のプログラムをやってみたくて、インクルードファイルとして、 #include <boost/xpressive/xpressive.hpp> こちらを宣言したのですが、次のようなエラーが出てきました。 [BCC32 エラー] test_boost.cpp(12): E2209 インクルード ファイル 'boost/xpressive/xpressive.hpp' をオープンできない [BCC32 エラー] test_boost.cpp(14): E2316 'xpressive' は 'boost' のメンバではない [BCC32 エラー] test_boost.cpp(14): E2282 名前空間名が必要 このようなエラーが出てくるのですが、これを解決する方法はないでしょうか? どうぞ、ご教授の程よろしくお願い致します。

専門家に質問してみよう