• ベストアンサー

PBC Library

PBC LibraryのVC版を使用したいのですが、「PBCVC」フォルダ内のプロジェクトファイルを開き、ビルドすると "gmp.h"が開けませんというエラーが出ます。 よくみると、「PBCVC」フォルダ内の「self-compiled」フォルダ内にgmp.hがあります。 そこで、プロジェクトにgmp.hを追加したのですが、同じエラーが出ます。 どうすれば解決するでしょうか? 宜しくお願いいたします。 PBC Library http://crypto.stanford.edu/pbc/download.html

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

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★基本的に PBC Library はどこにインストールしてる? ・インストールしたフォルダ位置を確認してパスを追加するか、  プロジェクトのプロパティで必ずインクルードするファイルを指定、  または環境変数『INCLUDE』に PBC Library をインストールした  フォルダのフルパスを追加設定すれば >#include <openssl/rand.h>  という指定でエラーなしにインクルードできます。  問題は『gmp.h』や『rand.h』のヘッダをどこにインストールしたのかを  ちゃんと確認する必要があります。ここがポイント。 ・あと標準ヘッダがあるフォルダに PBC Library で使うヘッダ群『gmp.h』や  『rand.h』を openssl フォルダを作成してそこへ移動させる方法もあります。  私はこちらの方法で自作ヘッダもインクルードできるようにしています。  例えば私の環境では  『C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include\』の  場所に『mylib』というフォルダを作成してそこに『CTipLib.h』というヘッダを  置いてあります。 ・この場合はソースから  #include <mylib/CTipLib.h>  としてインクルードが可能になります。  これを参考にダウンロードした PBC Library のヘッダ群を openssl というフォルダを  作成して移動しておけば利用できるようになります。  あと "gmp.h" ヘッダの場合はインクルードしているソースと同じフォルダに置けば  #include "gmp.h" としてインクルードができます。 最後に: ・ネットや本を頼りに #include プリプロセッサ命令の使い方をリサーチして下さい。  プログラミングに慣れていないのならば、一度調べてみる必要があります。基本だから。 ・以上。

lovelace21
質問者

お礼

ありがとうございます。 解決しました。

その他の回答 (1)

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★ソースに記述。 ・ソースファイルの方にパス付きで『gmp.h』をインクルードすればよいと思います。  相対パスでも指定できます。  #include "PBCVC/self-compoled/gmp.h"  ↑  ソースファイルがある場所から相対パスで指定します。  上記のは例えばの話。  ※上手くいかなければ絶対パスで指定すればよいでしょう。 ・以上。

lovelace21
質問者

補足

回答ありがとうございます。 無事解決することが出来ました。 しかし、新たな問題が発生しました。 それは、  #include <openssl/rand.h>が開けない というエラーです。 http://www7a.biglobe.ne.jp/~tsuneoka/cgitech/3.html などを参考にしたのですが、解決できていません。 どのようにすればよろしいでしょうか?

関連するQ&A

  • VC++2010の「#include <」

    VC++ で、他人の作ったソースコードをビルドして実行してみています。 (WinPcapのデベロッパ向けのライブラリを使った、サンプルプログラムです。) VC++自体、あまり理解が深くないのですが、 「#include <」まで書くと、「ヘッダファイル名が表示される」プロジェクトと、「そうではない」プロジェクトがあります。 「そうではない」方のプロジェクトだと、ビルド時にincludeするライブラリが足りないとか、そんな感じのエラーが表示されます。 ぱっと見の違いは、「ヘッダファイル名が表示される」プロジェクトの場合は、 ソリューションエクスプローラに、「外部依存関係」というフォルダのショートカットがあり、ライブラリがどっさりあります。 「そうではない」プロジェクトについても、「#include <」で、ヘッダファイルを表示してくれるようにしたいのですが、どの様にすればよいのでしょうか?★ プロジェクトのプロパティの、 C++>プリプロセッサ>プリプロセッサの定義 リンカー>入力>追加の依存ファイル はどちらのソースも同じにしたのですが…。

  • VC++2008でインポートライブラリのスタティックリンクの設定

    VC++2008でインポートライブラリのスタティックリンクの設定 従来のVC++6.0ではプロジェクトのビルド時にインポートライブラリをスタティックリンクさせる場合 「プロジェクト」メニューから「設定」項目を選択し、「プロジェクトの設定」ウィンドウを表示させて、 「リンク」タブをクリックして表示されるページの「オブジェクト/ライブラリモジュール」欄の先頭に、 MyDll.lib(例)とスペースを1つ入力していました。末尾のスペースはMyDll.libとkernel32.libを区切るために必要でした。 これをVC++2008で実現するためにはどの様にしたらいいのですか? VC++2008の「プロジェクト」メニューを探しても「プロジェクトの設定」ウィンドウがありません。

  • OpenCV2.0or2.1でスタティックリンクライブラリをビルドした

    OpenCV2.0or2.1でスタティックリンクライブラリをビルドしたい 表題の件ですが、MFCをスタティックリンクさせてビルドしているアプリケーションだと、OpenCVをインストールしたときに出来上がるライブラリではエラーの出るものがあります。そのエラーはMFCをDLLでビルドすると出ません。なのでOpenCVをスタティックライブラリでビルドすることで解決しそうなのですが、OpenCVの場合これがかなりややこしいです。 アプリケーションのソリューションにOpenCVの各ライブラリのプロジェクトを挿入する方法も試みたのですが、依存関係が複雑で解決しきれませんでした。 ということでOpenCVのスタティックリンクライブラリのビルド方法を知りたいのですが、Webにある情報ではうまくいかないものが多いので、いろいろな見識をうかがわせていただければ幸いです。 ■環境 VisualStudio2008Professional+OpenCV2.0or2.1+CMake

  • Haru PDF Library

    Haru PDF Libraryの使い方がいまいちわかりません。 1)公式HPで http://libharu.org/wiki/Downloads libHaru 2.1.0 (MSVC8, multithreaded) - libharu-2.1.0-vc8.zip を DL 2)ZIPを解凍 3)VS2008起動で、ZIPの中にあったヘッダファイルを すべてコピーしてプロジェクトに追加 4)build #include "stdafx.h" #include "hpdf.h" int _tmain(int argc, _TCHAR* argv[]) { HPDF_Doc pdf; pdf = HPDF_New (error_handler, NULL); if (!pdf) { printf ("ERROR: cannot create pdf object.\n"); return 1; } if (setjmp(env)) { HPDF_Free (pdf); return 1; } return 0; } 以下のエラーが生成されます。 error C2065: 'error_handler' : 定義されていない識別子です。 error C2065: 'env' : 定義されていない識別子です。 error C3861: 'setjmp': 識別子が見つかりませんでした どのようにしたらPDFが生成されますか?

  • VS2013リンクするライブラリ一覧表示方法は?

    こんばんは。 Visual Studio 2013の初心者です。基本的なことで困っております。 どうかアドバイスをお願い申し上げます。 ・質問内容 プロジェクトに登録されているリンクするライブラリ名(*.lib)を確認する(一覧表示する)方法を教えて下さい。 ・背景 とある仕事を引きつぐことになりまして、貰ったVS2013のプロジェクト(ソース)をビルドしようとしましたが「****.lib」がありません。と出て来てリンクエラーになってしまいます。 足りないライブラリを追加してまたビルドすると別の「****.lib」がありません。と出てしまいます。この繰り返しです。 しかし、その都度「***.libファイルが足りない」と言って貰うのは、ウザがられるので一括して見る方法が判りません。 プロジェクトファイルでリンクに必要な「ライブラリの一覧」を見たいのです。そして、「これだけのlibが無いので欲しい」と一括して貰いたいのです。 しかし、lib名を検索掛けても何処にリンクに必要なライブラリ一覧が記録されているファイルが見つかりませんでした。 一体何処に記録されているのでしょうか? 色々web検索したのですがどうしても見つかりません。 大変、難儀しております。 宜しくお願い申し上げます。

  • ライブラリの使用について質問です。

    はじめまして。ライブラリの使用について質問させて下さい。 PDFlib(ttp://pdflib.jp/)をフリー版で使用してみたいのですが、リンクが上手くいかず2028や2019のエラーが出てしまい、コンパイルが通りません。 環境は VS2008EE .NET C++ で、ウィンドウズフォームアプリケーションに組み込もうとしています。 ttp://pdflib.hykw.tv/ の入門ページは参照したのですが、よく判りません…。 現状で試した事は、プロジェクトのプロパティから、 追加のインクルードディレクトリの指定、 追加のライブラリディレクトリの指定、 追加の依存ファイルでpdflib.libを指定、 を行い、stdafx.hに #pragma comment (lib, "pdflib.lib") #include <pdflib.hpp> #include <math.h> を追加し、Form1.hで PDFlib p; だけを追加し、ビルド。までです。 未解決のトークンで、実体がないという意味だと思われるエラーが出てしまい、ビルドできません。 未解決のトークンのエラーの実際のエラーコードは以下です。長いです。 PDF_TEST.obj : error LNK2028: 未解決のトークン (0A00000F) "public: __clrcall PDFlib::~PDFlib(void)" (??1PDFlib@@$$FQAM@XZ) が関数 "private: void __clrcall PDF_TESY2::Form1::Form1_Load(class System::Object ^,class System::EventArgs ^)" (?Form1_Load@Form1@PDF_TEST@@$$FA$AAMXP$AAVObject@System@@P$AAVEventArgs@4@@Z) で参照されました。 以上です。宜しくお願い致します。

  • inttype.hが使えない

    タイトルのとおりですが、c言語に新規に追加されたinttype.hという標準ライブラリが使えないのですがこれはなぜでしょうか。VC++6.0を使っていてビルドするとインクルードされないとでます。どこかからかとってくるのでしょうか。なにとぞよろしくお願いいたします。

  • VC.NET(C#)のクラスライブラリをBCB(C++)で使用したい

    タイトルにあるように、 VC.NET(C#)のクラスライブラリを作成したのですが、 BCB(C++)での使用方法がわかりません。 BCBでプロジェクトに追加で、Dllを追加するのだろうと言うのは わかったのですが、 ソース上で、Dllをどのように呼び出したらよいのかわかりません。 Dllをプロジェクトに追加する以前に、何かしなくてはならないことがあるのでしょうか? よろしくお願いいたします。

  • 複数プロジェクトをビルドしたとき、DLLに新しく追加したClassのみがリンクエラーになる

    VC++6.0上で、複数の関連するプロジェクトをすべてビルドしたときのリンクエラーで悩んでいます。 現在、ワークスペースには、以下の複数のプロジェクトがあります。 ・Mainとなるプロジェクト ・上記のMainプロジェクトがDependしている、DLLのプロジェクト 問題は、DLLプロジェクトに新しいClassを追加したところ、単体でビルドすると成功するにもかかわらず、MainプロジェクトをActiveにしてリビルドしたときに、新しく追加したClassだけが下のように未解決にされてしまうということです。 ”error LNK2001: 外部シンボルXXX(追加したクラスのコンストラクタ)は未解決です” このClassはDLLの内部で使用されており、Mainプロジェクトから直接呼ばれるClassではありません。また、このClassの使用箇所をDLLのソースからコメントアウトすると、リンクエラーは解消されます。 VC++に不慣れかつ、他人の作ったプロジェクトなこともあり、現在の設定内容がいま一つわかっていないところがあります。問題はそのあたりだと思うのですが、はっきりしません・・・。 調べてわかっていることは、以下です。 ・Mainプロジェクトから呼ばれるDLLのHeaderファイルにはパスが通っている。 ・Mainプロジェクトから呼ばれるDLLのLibraryにはパスが通っている。また、#pragmaによりリンクされている。 ・Mainプロジェクトから呼ばれるDLLにはパスが通っている。 ここを確認してみたらどうか?など、ヒントをもらえたらありがたいです。 よろしくお願いいたします。

  • 「MFCを使用しない」から「MFCのスタティックライブラリを使用」

    VC++初心者ですが、 Win32Applicationで「MFCを使用しない」で作成したプログラムが正常動作しました。 そこで 「MFCを使用しない」から「MFCのスタティックライブラリを使用」にしてビルドしたところ、リンク中に どんどんエラーがでます。 関数関係のエラーなのですが。 (1) どうすればエラーを無くせるのでしょうか (2) 「MFCのスタティックライブラリを使用」にするとどの様なメリットがあるのか(説明している参考URLなど)。 教えて下さい

専門家に質問してみよう