我正在使用lldb在Xcode 5中调试C++程序,我想在调试器中评估任意表达式,特别是那些使用重载运算符的表达式.
例如,我创建了一个非常简单的Xcode 5 C++项目,其中包含以下main.cpp和所有编译器/链接器/ etc选项设置为默认值:
#include <iostream>
#include <vector>
int main(int argc, const char * argv[])
{
std::vector<int> vec;
vec.push_back(42);
std::cout << "vec[0] = " << vec[0] << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我在线上设置断点return 0;并运行程序.
然后,在lldb提示符下,整个打印矢量工作正常:
(lldb) expr vec
(std::__1::vector<int, std::__1::allocator<int> >) $0 = size=1 {
[0] = 42
}
Run Code Online (Sandbox Code Playgroud)
但是,我无法使用重载访问其成员operator[]:
(lldb) expr vec[0]
error: call to a function 'std::__1::vector<int, std::__1::allocator<int> >::operator[](unsigned long)' ('_ZNSt3__16vectorIiNS_9allocatorIiEEEixEm') that is not present in the target
error: The expression could not …Run Code Online (Sandbox Code Playgroud) 我试图std::cout在Xcode 5 C++项目中调用lldb.我的项目有一个#include <iostream>线(和我核实,编译std::cout命令正常工作),但它并不能有一个using namespace std;线.
当我停在lldb的断点时,我无法打电话std::cout:
(lldb) expr std::cout << "test"
error: no member named 'cout' in namespace 'std'
error: 1 errors parsing expression
(lldb) expr cout << "test"
error: use of undeclared identifier 'cout'
error: 1 errors parsing expression
Run Code Online (Sandbox Code Playgroud)
对于那些感兴趣的人,我试图std::cout用来打印OpenCV Mat对象.但这个细节可能并不重要.
我的lldb版本是lldb-300.2.53.
根据要求,这是(普通)代码:
#include <iostream>
int main(int argc, const char * argv[])
{
std::cout << "Hello World" << std::endl;
return 0; …Run Code Online (Sandbox Code Playgroud) 我正在运行Mac OS X 10.11(El Capitan).我想要:
pyenv按照以下SO答案我安装了Python 3.5:https://stackoverflow.com/a/18671336/1410871
我激活了我的Python 3安装并安装了支持Python 3的OpenCV 3,如下所示:
pyenv shell 3.5.0
brew install opencv3 --with-python3
Run Code Online (Sandbox Code Playgroud)
但是当我启动一个IPython shell并导入时cv2,我收到一个错误:
ImportError Traceback (most recent call last)
<ipython-input-1-72fbbcfe2587> in <module>()
----> 1 import cv2
ImportError: No module named 'cv2'
Run Code Online (Sandbox Code Playgroud)
为什么?
我有兴趣在我的系统上使用Kota Yamaguchi的mexopencv库,其规格如下:
我使用mexopencv网站上的命令git克隆了最新的OpenCV版本; 这是版本084838d62a25fcb3eec9f610abf91b167bc6c2f5从星期六七月20日05:18:37 2013 -0700.
我运行了Matlab的mex -setup命令,然后从Mathworks 实现了这个解决方法,使用Xcode 5作为我的mex编译器.
我使用Matlab命令将macports的pkg-config命令添加到路径中 setenv('PATH', [getenv('PATH') ':/opt/local/bin']);
现在,运行mxopencv.make会产生以下链接器错误消息:
Undefined symbols for architecture x86_64:
"cv::merge(std::vector<cv::Mat, std::allocator<cv::Mat> > const&, cv::_OutputArray const&)", referenced from:
MxArray::toMat(int, bool) const in libMxArray.a(MxArray.o)
"cv::split(cv::Mat const&, std::vector<cv::Mat, std::allocator<cv::Mat> >&)", referenced from:
MxArray::MxArray(cv::Mat const&, mxClassID, bool) in libMxArray.a(MxArray.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过xargs. 我在文件中创建了一个空分隔的命令列表,cmd_list.txt然后尝试使用 6 个线程并行运行它们,如下所示:
cat cmd_list.txt | xargs -0 -P 6 -I % bash -c %
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
bash: line 0: fg: no job control
Run Code Online (Sandbox Code Playgroud)
我已经缩小了与命令列表中各个命令的长度相关的问题。这是一个用于下载图像的人为长命令示例:
mkdir a-very-long-folder-de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8
wget --no-check-certificate --no-verbose -O a-very-long-folder-de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8/blah.jpg http://d4u3lqifjlxra.cloudfront.net/uploads/example/file/48/accordion.jpg
Run Code Online (Sandbox Code Playgroud)
仅wget在没有文件列表和没有 的情况下单独运行命令xargs,就可以正常工作。但是,在 bash 命令提示符下运行此命令(同样,没有文件列表)会失败并显示no job control error:
echo "wget --no-check-certificate --no-verbose -O a-very-long-folder-de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8de090952623b4865c2c34bd6330f8a423ed05ed8/blah.jpg http://d4u3lqifjlxra.cloudfront.net/uploads/example/file/48/accordion.jpg" | xargs -I % bash -c %
Run Code Online (Sandbox Code Playgroud)
如果我省略长文件夹名称并因此缩短命令,它可以正常工作:
echo "wget --no-check-certificate --no-verbose -O /tmp/blah.jpg http://d4u3lqifjlxra.cloudfront.net/uploads/example/file/48/accordion.jpg" | xargs -I % bash -c %
Run Code Online (Sandbox Code Playgroud)
xargs …