Xcode 3.2.1和C字符串失败!

Xcode 3.2.1和C字符串失败!,第1张

概述在Mac OS X Snow Leopard的 Xcode 3.2.1中,我打开一个项目: C stdc类型的命令行工具. 我有以下简单的代码: #include <iostream>#include <string>using namespace std;int main(){ string myvar; cout << "Enter something: " 在Mac OS X SNow Leopard的 Xcode 3.2.1中,我打开一个项目:
C stdc类型的命令行工具.
我有以下简单的代码:

#include <iostream>#include <string>using namespace std;int main(){    string myvar;        cout << "Enter something: " << endl;    cin >> myvar;    cout << endl << myvar << endl;    return 0;}

该程序编译良好,并提示我“输入东西”.当我输入内容,然后按回车键时,我收到以下错误:

myproject(766) malloc: *** error for object 0x1000041c0: pointer being freed was not allocated*** set a breakpoint in malloc_error_break to deBUGProgram received signal:  “SIGABRT”.sharedlibrary apply-load-rules all(gdb)

在另一台计算机上编译早期版本的Xcode(3.1.2)时(使用’命令行实用程序’选项打开项目,3.2.1中不存在),代码运行时没有问题.

有人知道发生了什么吗?
谢谢,
尤瓦

解决方法 据我所知,我在x86_64的发布模式下没有遇到此问题.但我在DeBUG x86_64中看到了这个问题.如果我按照 directions given by Howard in this post,我可以让它在调试模式下运行:

>项目 – >编辑活动目标…
>单击构建选项卡
>搜索“预处理器”
>删除_GliBCXX_DEBUG = 1 _GliBCXX_DEBUG_PEDANTIC = 1

构建并运行,你会注意到它的工作原理.另一个有趣的观察是,单独使用__gnu_deBUG :: string(来自< deBUG / string>标头)不会触发错误.

编辑:从马口(known issues in XCode 3.2.1)

The default gcc 4.2 compiler is not compatible with the Standard C++ library DeBUG Mode. C++ programs compiled with Xcode 3.2 may not work in the DeBUG configuration. To fix this,set the Compiler Version to 4.0,or edit the DeBUG configuration’s Preprocessor Macros and remove the entrIEs:
_GliBCXX_DEBUG=1 _GliBCXX_DEBUG_PEDANTIC=1

您可以通过导航到/ Developer / library / Xcode / Project Templates / Application / Command line Tool / C Tool / C Tool.xcodeproj /并编辑project.pbxproj并删除第138行周围的行来为所有项目执行此 *** 作:

"_GliBCXX_DEBUG=1","_GliBCXX_DEBUG_PEDANTIC=1",
总结

以上是内存溢出为你收集整理的Xcode 3.2.1和C字符串失败!全部内容,希望文章能够帮你解决Xcode 3.2.1和C字符串失败!所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1030220.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存