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中不存在),代码运行时没有问题.
有人知道发生了什么吗?
谢谢,
尤瓦
>项目 – >编辑活动目标…
>单击构建选项卡
>搜索“预处理器”
>删除_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字符串失败!所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)