我正在尝试构建/安装/使用Poco C ++库。我正在经营Ubututu(Natty)。我已经编译了正常工作的静态库,但是当我将env var PROJECT_BASE设置为包含空格的路径时,我收到错误:
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退格键会给我一个替代错误:
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.
我可能会遗漏一些基本的东西,但是我已经摔跤了几天才能让Poco C ++ Library构建系统设置我想要它无济于事:SI知道README说了一些关于SYMBLINKS搞砸了PROJECT_BASE,但我没有使用任何:S /文件是一个ext4挂载(相同的硬盘,单独的分区),如果这是相关的。
感谢您的帮助!
答案 0 :(得分:4)
对于其他人来说:“ * 目前的工作目录不在$ PROJECT_BASE下。停止。”错误,我找到了一个可能听起来很模糊的解决方案。
基本上,如果任何父目录是符号链接,它将生成此错误。
重要说明:确保构建目录的路径没有 包含符号链接。此外,在Mac OS X(或其他系统上) 使用不区分大小写的文件系统),确保中的字符 路径有正确的情况。否则你会收到一个错误说 “目前的工作目录不在$ PROJECT_BASE下。”。
http://pocoproject.org/docs/00200-GettingStarted.html
在我的情况下,我正在编译5级深度的库,第二个目录是符号链接。将其更改为目录解决了问题。
HTH
答案 1 :(得分:2)
需要非常小心和刻意努力使makefile等系统准确处理带空格的路径名。可以办到;这不是微不足道的。很明显,这个包没有这么修改;它就像大多数这样的包。
如果你真的想为自己制造生活地狱,请使用路径名,例如:
/home/mine/He said, "Don't do it!"/poco-1.4.1
空格,单引号和双引号 - 至少不包括反引号,美元,括号,换行符等。
与此同时,向不可避免的方向屈服 - 使用一个没有空格等的路径名。
答案 2 :(得分:0)
如果您的问题不在符号链接中,就像在我的情况下一样,您可能没有指定完整路径,而是指定相对路径,如以下博文中所示。
http://fatalfeel.blogspot.com/2013/09/poco-with-cocos2d-in-android-and-ios.html