草庐IT

c++ - 部署使用 GCC 4.6 编译的 OSX 应用程序

我正在尝试在MacOS-X上移植我的一个项目。当我使用C++0X开发我的项目时,我需要一个比Xcode提供的版本更新的GCC版本(甚至是Xcode4),所以我在我的SnowLeopardsMac上编译了GCC4.6。我的项目确实可以正常编译,它也可以在我编译它的计算机(OS-X10.6.7)上启动,但是当我将它传输到我的MacBook(OS-X10.5.8)时它不起作用。它返回以下错误:dyld:lazysymbolbindingfailed:Symbolnotfound:__ZNSo9_M_insertImEERSoT_Referencedfrom:/Users/zu/Desktop

C++ DX11 应用程序仅在 Visual Studio IDE 中运行

好吧,我在MSDN论坛上提出了这个问题,但尚未收到任何类型的回复,所以我想我应该试试StackOverflow。我目前正在Win7上使用VS2008开发DirectX应用程序。我最近遇到了一个内存分配类的严重内存损坏错误,该错误会占用字节对齐的内存。在此错误期间,我仍然可以运行调试并发布可执行文件,但是它会由于指令损坏或其他原因而崩溃,但它仍会执行一段时间直到崩溃。然后我剥离了整个内存分配类。该应用程序在IDE(发布和调试版本)中运行完美,但我根本无法运行任何可执行文件。他们立即因无响应/停止工作错误而崩溃。而且我不认为这是我的环境,因为我在另一台之前没有问题的计算机上遇到了同样的问题

c++ - 如何使用 VS2003 工具集从 VS11 中构建 C++ 项目?

我尝试将适用于VisualC++2005的(工作)平台工具集的拷贝添加到C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v71,替换所有有道理。但是当我尝试编译我的项目时,输出结果令人失望:1>Microsoft(R)32-bitC/C++OptimizingCompilerVersion13.10.6030for80x861>Copyright(C)MicrosoftCorporation1984-2002.Allrightsreserved.1>1>clÿþ/1>1>c

c++ - 在 C++11 中抛出异常时是否使用 move 语义?

http://www.drdobbs.com/cpp/practical-c-error-handling-in-hybrid-env/197003350?pgno=4在这篇文章中,HerbSutter解释说抛出异常需要异常的拷贝,因为它是作为临时创建的,因此使用std::auto_ptr来绕过复制开销。鉴于move语义在C++11中可用,这仍然是必要的吗? 最佳答案 我刚查过,标准允许省略将throw表达式的操作数指定的对象复制或move到异常对象中如果您不以其他方式改变程序的含义(即如果您重新抛出并且随后的捕获会突然看到一个由前

c++ - 使用 C++11 迭代语法时从 STL 列表中删除

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Erasinganelementfromacontainerwhileinsidearange-basedforloopSimilartothis,您可以在使用新的for(autoitem:list)语法从STL列表中删除它吗?这是一个完整的例子(崩溃了!)#includeusingnamespacestd;intmain(){listli;li.push_back(4);li.push_back(5);li.push_back(6);for(autonum:li){if(num==5)li.remove(n

c++ - C++11 theads 的最基本并行化失败

我尝试通过g++4.7使用C++11theading库。首先我有一个问题:是否预计下一个版本不需要手动链接pthread库?所以我的程序是:#include#include#includevoidf(inti){std::coutt;for(inti=0;i我编译:g++-4.7-Wall-Wextra-Winline-std=c++0x-pthread-O3helloworld.cpp-ohelloworld它返回:Helloworldfrom:Helloworldfrom:Helloworldfrom:322purevirtualmethodcalledterminatecalle

c++ - Intel (windows) c++ 编译器并将其库实现更改为 gcc。可能吗?

不确定这是不是该问的地方,但这里是来自page在英特尔网站上,它指出:TheIntelC++CompilerforWindowsusestheMicrosoftVisualC++headerfiles,librariesandlinker.Microsoftcontrolstheheaderfilesthatdefinethenamespace.ContactMicrosoft'stechnicalsupportinreferencetoMicrosoft'sconformancetotheC++standardonthisissue...link是否有英特尔(或其他)指南将库从vis

c++ - 是否有任何静态分析工具可以检查 Rule of 3(或 Rule of 5 C++11)

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭8个月前。Improvethisquestion我目前正在开发一个建立在沙子基础上的代码库。据称经过测试的库中有许多类违反了“3法则”。大多数声明了一个非平凡的析构函数,但缺少复制构造函数或赋值运算符。是否有任何编译器标志(gcc)或静态分析工具会在类违反规则3时发出警告?目前我们将Coverity与GCC4.4版结合使用。

C++11 lambda 不明确

为什么编译器不能选择最明显的重载:#include#includestaticvoidfoo(conststd::function&f){std::cerr&f){std::cerr你会期望输出:usingbooloverloadtrueusingintoverload1但是,编译器无法推断出正确的重载:gcc-4.8:main.cpp:Infunction'intmain()':main.cpp:17:6:error:callofoverloaded'foo(main()::__lambda0)'isambiguous});^main.cpp:17:6:note:candidates

c++ - 如何忽略 [默认启用] 的特定 gcc 警告?

我有以下程序将绿色文本打印到终端:#include#include//returnsacoloredstringforterminaloutputstreamsstd::stringcolorize_forground(std::stringconst&message,intconst&background){returnstd::string("\e[38;5;"+std::to_string(background)+"m"+message+"\x1b[0m");}intmain(){std::cout但是,当我用下面的警告标志编译程序时,g++-std=c++1y-pedantic