ページ 11

インクルードのエラーについて

Posted: 2014年3月12日(水) 18:55
by ptolemy
僕は、VC++2008とpspsdkを使い、pspのメールのプラグインを作っています。

そして、ネットワーク関係を使うため、Pocoというライブラリを導入しようとしたんですが、インクルードしようとするとファイルがないと出ます。

インクルードしたいパス:C: /program files / /Poco -all/Net/include/Poco/Net/POP3ClientSession.h
VC のオプションに通したパス: C: /program files /Poco -all/Net/include
プログラム:#include<Poco/Net/POP3ClientSession.h >

と書いています。

また、こちらを参考にしています。
http://d.hatena.ne.jp/tullio/touch/20090616

何かおかしいところは、あるでしょうか?

ご回答お願いします。

Re: インクルードのエラーについて

Posted: 2014年3月12日(水) 23:22
by Poco
VCで設定したパスが間違っていませんか?
C: /program fileではなくてC:/program filesでは?

Re: インクルードのエラーについて

Posted: 2014年3月13日(木) 17:48
by ptolemy
VC のパスは、通っていました。

質問に
ミスがあったみたいです。
修正しておきます。

Re: インクルードのエラーについて

Posted: 2014年3月24日(月) 20:33
by ptolemy
パスには、問題がないとすると導入のしかたが間違っているということですか?
ご回答お願いします。

Re: インクルードのエラーについて

Posted: 2014年3月24日(月) 23:59
by かずま
ptolemy さんが書きました: プログラム:#include<Poco/Net/ POP3Client Session.h >

と書いています。

また、こちらを参考にしています。
http://d.hatena.ne.jp/tullio/touch/20090616
参考にしているところでは、
#include <Poco/Net/POP3ClientSession.h>
と書かれています。
ptolemy さんが書きました: 何かおかしいところは、あるでしょうか?
スペースなのではありませんか?
#include <stdio.h> を #include<std io.h > と書くとエラーになります。

Re: インクルードのエラーについて

Posted: 2014年3月25日(火) 18:59
by ptolemy
ご指摘ありがとうございます。

ソースコードを確認してみます。

Re: インクルードのエラーについて

Posted: 2014年3月26日(水) 23:27
by ptolemy
すみません。

ソースコードは、あってました。
質問が間違っていたので修正します。

Re: インクルードのエラーについて

Posted: 2014年3月27日(木) 00:06
by かずま
ptolemy さんが書きました: インクルードしたいパス:C: /program files / /Poco -all/Net/include/Poco/Net/POP3ClientSession.h
VC のオプションに通したパス: C: /program files /Poco -all/Net/include
スペースですが、これは直さなくていいんですか?
何で、パスに ファイル名が書いてあるんですか?

Re: インクルードのエラーについて

Posted: 2014年3月27日(木) 11:38
by ptolemy
もしかしたら今までパスの意味を間違っていたかもしれません。

パスとは、ファイルの場所ではなかったんですか?

また、直してなかったスペースとは、どこですか?

Re: インクルードのエラーについて

Posted: 2014年3月27日(木) 11:44
by softya(ソフト屋)
インクルードパスは、#include文に書いたファイルパスとVC のオプションに通したフォルダパスが合成された形で使われます。
なので、正確を期するためコピペして掲示板に掲載してください。
最初の頃の質問を見るとファイル名やらフォルダ名にやたらとスペースが入っています。
実際のファイルパスと同じなら良いのですが違うならエラーに成って当然です。

【補足】
こういうツールがあるので、絶対パスを確認できます。この絶対パスもコピペしてもらうと良いかと。
「フルパス取得くんの詳細情報 : Vector ソフトを探す!」
http://www.vector.co.jp/soft/win95/util/se291592.html

【補足の補足】
プログラムのバグ取りの最大の敵は思い込みです。
なので、極力正確で第三者視点に立つことが必要です。
余分なことはしない。情報は正確に。これを常に意識してください。
参考サイトの内容にアレンジを一切加えずにやってみて問題が起きないなら、アレンジが間違っていると言う当然の結論に成るますよね。
そこから調べるというのが、本来のアプローチです。

Re: インクルードのエラーについて

Posted: 2014年3月27日(木) 12:19
by N.R
>パスとは、ファイルの場所ではなかったんですか?
パスとは場所ですね。

 パス"c:/test" に "test.h" を作ります
は実行できます。

>インクルードしたいパス:C:/program files//Poco -all/Net/include/Poco/Net/POP3ClientSession.h

 パス"C:/program files//Poco -all/Net/include/Poco/Net/POP3ClientSession.h" に "test.h" を作ります
は実行できませんよね

もっとも POP3ClientSession.h というフォルダがあるかもしれませんが include で指定しているからフォルダではないと予想はできます。
要するに議題者の環境というのはこちらからは分からないのです

Re: インクルードのエラーについて

Posted: 2014年3月27日(木) 19:26
by ISLe
パスとは、ファイルシステム上の位置を示す文字列のことです。

特定のファイルを示すパスは、そのファイルのファイル名も含みます。
質問にある「インクルードしたいパス」は「インクルードしたいヘッダファイルのパス」と容易に読み替えられる気がします。

ファイルやフォルダの名前に、前後に空白を含む名前や、空白のみの名前は使えないので、設定内容が導入以前の問題です。

Vista以降なら、エクスプローラで右クリックから『パスとしてコピー』でフルパスをクリップボードにコピーできます。

(訂正)
『パスとしてコピー』はシフトキーを押したまま右クリックで表示するメニューにあります。

Re: インクルードのエラーについて

Posted: 2014年3月27日(木) 20:51
by ptolemy
詳しくありがとうございます。
OSは、XPです。
また、掲示板に質問をしたときの端末が入力したらスペースをあけるというふうになってました。
なので改めて、PC から正確に書きたいと思います。

Re: インクルードのエラーについて

Posted: 2014年3月27日(木) 20:55
by みけCAT
オフトピック
ISLe さんが書きました:Vista以降なら、エクスプローラで右クリックから『パスとしてコピー』でフルパスをクリップボードにコピーできます。
自分の環境では、Shift+右クリックでないと「パスとしてコピー」というメニューが出ないようでした。

Windows Vista Home Premium SP2 32ビット
Intel(R) Core(TM)2Duo T8100 @2.10GHz 2.10GHz
RAM 4.00GB

Re: インクルードのエラーについて

Posted: 2014年3月27日(木) 20:58
by softya(ソフト屋)
> また、掲示板に質問をしたときの端末が入力したらスペースをあけるというふうになってました。

ここが意味不明です。端末とは何でしょうか? 
「端末が入力したらスペースをあけるというふうになってました。」
端末というものがスペースを空けるのでしょうか?

もしかして、スマホのことでしょうか。
それなら、不正確になると言うことは分かっていて投稿されたと言うことですね。
最初に正確ではないと断りを入れるべき事だと思います。
あるいは、スマホの設定を変えるべきかと思います。

Re: インクルードのエラーについて

Posted: 2014年3月27日(木) 21:03
by みけCAT
softya(ソフト屋) さんが書きました:もしかして、スマホのことでしょうか。
それなら、不正確になると言うことは分かっていて投稿されたと言うことですね。
最初に正確ではないと断りを入れるべき事だと思います。
あるいは、スマホの設定を変えるべきかと思います。
空白が入る設定になっていることに気づいていなかった、という解釈もできると思います。
IMEが勝手に空白を入れるということに気づいていたら、空白が入っても消せばいいだけという気がしますし…。

Re: インクルードのエラーについて

Posted: 2014年3月28日(金) 17:04
by ptolemy2
スマホの空白についてですが空白が入る設定になっていることに気づいていませんでした。
誤解を招いてすみませんでした。


フルパス取得くん→C:\Program Files\poco-1.4.6p2-all\Net\include\Poco\Net\POP3ClientSession.h
プログラム→#include<Poco\Net\POP3ClientSession.h> 
VCディレクトリ→C:\Program Files\poco-1.4.6p2-all\Net\include
エラー→ >main.cpp:4:39: error: Poco\Net\POP3ClientSession.h: No such file or directory


poco-allと書いていた部分が違ってました。
ここは、確認不足でした。
しかし、VCディレクトリのpoco-allを直しても駄目でした。

Re: インクルードのエラーについて

Posted: 2014年3月28日(金) 17:43
by softya(ソフト屋)
情報として不足しているのですが、VCディレクトリは[インクルード ディレクトリ]をちゃんと指定されているのでしょうか?

Re: インクルードのエラーについて

Posted: 2014年3月28日(金) 18:04
by ptolemy
指定しています。

Re: インクルードのエラーについて

Posted: 2014年3月28日(金) 19:05
by ISLe
ptolemy2 さんが書きました:エラー→ >main.cpp:4:39: error: Poco\Net\POP3ClientSession.h: No such file or directory
これってVC++のコンパイルエラーではないですね。

PSPSDKでビルド用のインクルードパスはmakefileを書き換えて設定する必要があるみたいです。
もしかすると環境変数INCLUDEに設定するだけで良いかもしれません。

Re: インクルードのエラーについて

Posted: 2014年3月28日(金) 19:08
by softya(ソフト屋)
そういえば、gccでコンパイルしてませんか? とするとVC++の設定をいじっても無駄ですよ。
【補足】
makefileかバッチファイルがあると思うので、そちらを修正してください。

Re: インクルードのエラーについて

Posted: 2014年3月29日(土) 14:06
by ptolemy
makifile の方は、調べてみます。

しかし、調べてもgccとVC++の関係がよくわからないんですが解説してもらえませんか?

Re: インクルードのエラーについて

Posted: 2014年3月29日(土) 14:10
by softya(ソフト屋)
ptolemy さんが書きました:makifile の方は、調べてみます。

しかし、調べてもgccとVC++の関係がよくわからないんですが解説してもらえませんか?
その環境はよく分かっていませんが、PSP SDKはgccで実行ファイルを作るようになっています。
そもそもPSPのCPUの機械語コードをVC++は作ることが出来ません。
なのでコンパイルチェックは出来ても、実行ファイルをVC++では作ることが出来ないのです。
単なるエディタとして使われているのでは?と思うのですが。

Re: インクルードのエラーについて

Posted: 2014年4月24日(木) 01:32
by ptolemy
しばらくPC が使えず返信出来ませんでした。
一度PCように作ってからPSP に移すという形にしようと思い、かいたんですがエラーにファイルがないとエラーがでました。しかし、PCのなかには、そのようなファイルは、見つかりませんでした。この場合は、どう対処すればいいですか?一応プログラムをのせます。
目的は、メールの受信箱にあるメールの数を表示するプログラムです。
一定の時間ごとに取得するやり方がいまいちわからなかったので少し変かもしれません。

Re: インクルードのエラーについて

Posted: 2014年4月24日(木) 01:35
by ptolemy

コード:

 
 #include<iostream> 

#include<Poco\Net\POP3ClientSession.h>
#include<stdio.h>



using	namespace	std;	
using	Poco::Net::POP3ClientSession;

int	count=0,mailcount=0,mail;

int	main(){

string	pophost="pop.mail.yahoo.co.jp";
string	user="*****";//ユーザー名と
パスワードは、*で置き換えます。
string	pass="*****";			

POP3ClientSession	client(pophost,110);

client.login(user,pass);		

POP3ClientSession::MessageInfoVec	messagelist;

client.listMessages(messagelist);

	if(count==0){
	mailcount=0;
	}
	if(count<202){
		count++;
	}
	if(count==200){
		for(POP3ClientSession::MessageInfoVec::iterator	i=messagelist.begin();i!=messagelist.end();++i){
			mailcount++;
		}
		mail=mailcount;
		count=0;
	}
	
 printf("%d",mail);
 



	return	0;
}
____________\
>LINK : fatal error LNK1104: ファイル 'PocoFoundationd.lib' を開くことができません。 

Re: インクルードのエラーについて

Posted: 2014年4月24日(木) 08:48
by softya(ソフト屋)
Net\POP3ClientSession.hはWindowsに対応しているのでしょうか? あるいはWindows用のライブラリを配布しているのでしょうか?
していなければ、そのまま使うことは出来ません。

これのことでしょうか?
「Systems Programming - 2009/Fall - Assignment 2 Forum」
http://www.cs.bgu.ac.il/~spl091/Assignm ... 6c90cc3231

Re: インクルードのエラーについて

Posted: 2014年4月26日(土) 00:05
by ptolemy
英語が得意ではないので詳しくリンクサイトは、見てませんがリンクサイトに書いていたファイルとエラーにでてきたファイルは、同じです。

私は、 http://pocoproject.org/download/
のサイトでダウンロードした気がするのでwindows 用だと思います。

Re: インクルードのエラーについて

Posted: 2014年4月26日(土) 00:19
by softya(ソフト屋)
英語が得意じゃなくても翻訳サイトは使えると思います。 英語中心のPSPの開発環境ですから英語を投げると何も出来ません。
翻訳サイトで確認はされていますか?

【補足】
今頃聞いてなんですが、このPocoってPSPで動くほどコンパクトなのでしょうか?
C++って段階で危険な印象がありますが実績は有るんですよね?

Re: インクルードのエラーについて

Posted: 2014年5月26日(月) 00:21
by ptolemy
すみません。今年受験なので色々あって返信遅れました。
ライブラリにコンパクト等と言うものがあったんですね。
また、実績はないので不可能と思われます。

色々と教えていただきありがとうございました。

これから、pspのアプリ開発をやめて、3Dゲーム開発に戻ろうと思います。
ご回答ありがとうございました。