我正试图在Xcode 5 C++项目的lldb中调用std::cout
。我的项目有一个#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
对于那些感兴趣的人,我正在尝试使用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;
}
断点位于return 0;
行。
expr std::cout << "test"
不是一个简单的表达式,我认为它在那里不起作用,因为它涉及到函数调用。 - Raxvanstd::cout
和cout
两种方式。在我测试lldb命令的项目中,代码明确就是我在原帖中写的那样,没有using namespace std;
这一行。 - Daniel Golden#include <iostream>
行明确地出现在我的代码示例中。我还确认了std::cout
命令在编译后的代码中有效,只是在 lldb 调试器中无效。 - Daniel Goldenstd::cout.operator<<("test")
(你原来的命令中有一个打字错误)。但结果是一样的:error: no member named 'cout' in namespace 'std'
。 - Daniel Golden