2011-04-17 9 views
1

Poco C++ライブラリをビルド/インストール/使用しようとしています。私はUbututu(Natty)を実行しています。私は正常に動作している静的ライブラリをコンパイルしたが、私は、スペースを含むパスにENVするvar PROJECT_BASEを設定すると、私はエラーを取得:C++ Pocoライブラリでコンパイルエラーを起こす - パス名に空白が含まれています

make 
/bin/sh: Syntax error: Unterminated quoted string 
/bin/sh: Syntax error: Unterminated quoted string 
/home/username/Documents/poco-1.4.1p1/build/rules/global:62: *** Current working directory not under $PROJECT_BASE. Stop. 

私はPROJECT_BASEを設定しました:

/files/Dropbox/Myname\'s\ Work/C++\ Work 

私は正しくエスケープする必要があると信じていますか? traillingバックスペースを追加すると、私の別のエラー与える:私はそれをする方法を設定し、私は基本的な何かが足りないかもしれないが、私はポコCを得るためにここ数日間格闘してきた

make 
/bin/sh: Syntax error: Unterminated quoted string 
awk: line 1: runaway string constant "/files/Dro ... 
/home/username/Documents/poco-1.4.1p1/build/rules/global:62: *** Current working directory not under $PROJECT_BASE. Stop. 

を++ライブラリのビルドシステムREADMEはSYMBLINKSがPROJECT_BASEを壊していると言いましたが、私は何も使っていません。S/filesはext4のマウント(同じhdd、別のパーティション)です。

ありがとうございました!

+4

パスは、多くの場合、シェルスクリプトで正しく処理されます - あなたは、単にそれらが – Erik

+0

おそらく、単にバグを回避することにより、非常に簡単にあなたの人生を作ってあげますか?メイクファイルはどこかでボルケーグされている可能性があります – sehe

+0

えええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええええ投稿日時:私はドロップボックスのスペースを削除するためにディレクトリの名前を変更するのを嫌っている。なぜなら、3つの他の場所と競合する可能性が最も高いからだ。P – Technosites

答えて

2

makefileのようなシステムがスペースを使って正確にパス名を扱うようにするためには、細心の注意が必要です。それはできます。それは自明ではない。このパッケージはあまり変更されていないことは明らかです。そのようなパッケージの大部分のようなものです。

あなたが本当に自分のための人生の地獄を作りたい場合は、のようなパス名を使用します。

/home/mine/He said, "Don't do it!"/poco-1.4.1 

スペース、単一引用符と二重引用符 - それはバッククォート、ドル、括弧、改行が含まれていません。少なくとも、

一方、避けられないことに屈する - それにスペースなどを入れずにパス名を使用する。

+0

ahahaはこれがそうかもしれないという気持ちを持っていた。 symblinkを使ってパスをより良いものに変換するには...しかし、unixの別の場所にサブディレクトリをマウントすることは可能ですか?// nicerpathに愚かなスペースを持つmount/files/path? - ありがとうございました:) – Technosites

+0

@ Techneites:私は、推奨されているように 'mount'でスペースを避けることはできないと思います。名前にスペースを入れずにシンボリックリンクを使うとうまくいくはずです。 POSIX [ポータブルファイル名の文字セット](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_276)を目指してください。 –

3

*現在の作業ディレクトリが$ PROJECT_BASEにはありません。停止してください。エラー、私はおそらく不明瞭な解決策を発見した。

親ディレクトリのいずれかがシンボリックリンクである場合、基本的にこのエラーが生成されます。

重要:ビルドディレクトリのパスに にシンボリックリンクが含まれていないことを確認してください。さらに、Mac OS X(または大文字と小文字を区別しないファイルシステムを持つ他のシステム )では、パスに の文字が正しく入力されていることを確認してください。さもなければ、 "現在の作業ディレクトリが$ PROJECT_BASEの下にない"というエラーが発生します。私の場合は

http://pocoproject.org/docs/00200-GettingStarted.html

、私は5つのレベルの深ライブラリをコンパイルした第二のディレクトリがシンボリックリンクでした。ディレクトリに変更すると問題が解決しました。

HTH

関連する問題