草庐IT

c++ - Eclipse CDT 与 Cygwin GCC : automatic discovery of symbols and paths

我使用EclipseCDT和CygwinGCC3作为编译器。我的项目正在使用自定义Makefile。问题是在调试代码时,它找不到源文件,即使我添加了自定义路径映射:/cygdrive/cc:\除了我得到所有标准头文件的“Unresolvedinclusion”这一事实之外,即使程序编译并运行良好也是如此。我将问题追溯到“自动发现”选项,该选项显示以下错误:请注意,我确保工作区目录位于没有任何空格的路径上。奇怪的是,当我在shell中运行那个有问题的命令时,它运行得很好,输出如下:$gcc-E-P-v-dDC:/Users/Amro/workspace/.metadata/.plugin

c++ - 静态表生成适用于 GCC 但不适用于 clang; clang 有问题吗?

我曾经写过一些代码,在编译时为一些模板元编程生成一个静态表/数组(这个想法是C风格的字符串可以在编译时构建(它们只是char数组))。这个想法和代码基于DavidLin的answer:#includeconstintARRAY_SIZE=5;templateclassTable:publicTable{public:staticconstintdummy;};templateclassTable{public:staticconstintdummy;staticintarray[N];};templateconstintTable::dummy=Table::array[I]=I*I+

c++ - 禁用不兼容选项的 gcc 警告

我很好奇是否有一个选项可以禁用关于参数对正在编译的语言无效的gcc警告。例如:cc1:warning:commandlineoption"-Wno-deprecated"isvalidforC++/Java/ObjC++butnotforC我们的构建系统会在整个构建过程中传递我们在全局范围内决定的警告。我们同时拥有C/C++代码,并且在尝试查找实际警告时警告会变得非常烦人。有什么建议吗? 最佳答案 在gcc-Wxxxx中启用特定警告并使用-Wno-xxxx禁用它们。来自GCCWarningOptions:Youcanrequestm

c++ - GCC STL 是线程安全的吗?

我在网上发现了相互矛盾的信息:http://www.sgi.com/tech/stl/thread_safety.htmlTheSGIimplementationofSTListhread-safeonlyinthesensethatsimultaneousaccessestodistinctcontainersaresafe,andsimultaneousreadaccessestotosharedcontainersaresafe.Ifmultiplethreadsaccessasinglecontainer,andatleastonethreadmaypotentiallywri

c++ - std::back_inserter 在旧的 GCC 上需要 const_reference。为什么?

我目前正在查看一些可以在较新版本的GCC上编译但不能在旧版本上编译的代码。在我的例子中,我使用std::back_inserter将一些数据从一个数据结构std::copy到自定义数据结构。但是,如果我忘记了此自定义数据结构中的typedefvalue_type&const_referencetypedef,它将无法在GCC4.4上编译。相同的代码在GCC4.5上编译和运行得很好。这两个编译器版本之间有什么区别,这使得代码可以在一个版本上编译但不能在另一个版本上编译。我猜想这与C++11的实现有关,后者在GCC4.4中不太完整。我猜可能是decltype或另一个新的C++11关键字。此

c++ - 将 16 字节 CAS 与 GCC 结合使用时出现未定义的引用链接器错误

我在Debian上使用GCC4.7.2,每当我尝试使用时都会遇到链接器错误具有16字节值的设施。我正在运行可以支持CMPXCHG16B的x86_64VM指令-但即使我没有必要的硬件,我也不明白为什么这里会产生链接器错误。据我所知,如果硬件不支持必要的CAS操作,库应该回退到使用常规锁。无论如何,这里有一个非常简单的测试用例来重现这个问题:#include#includestructfoo{std::uint64_tx;std::uint64_ty;};intmain(){std::atomicf1({0,0});foof2={0,0};foof3={1,1};f1.compare_ex

c++ - 在 gcc 编译器中使用 bts 汇编指令

我想使用bts和btx86汇编指令来加速我在Mac上的C++代码中的位操作。在Windows上,_bittestandset和_bittest内部函数运行良好,并提供显着的性能提升。在Mac上,gcc编译器似乎不支持这些,所以我尝试直接在汇编程序中进行。这是我的C++代码(请注意,“位”可以>=32):typedefunsignedlongLongWord;#defineDivLongWord(w)((unsigned)w>>5)#defineModLongWord(w)((unsigned)w&(32-1))inlinevoidSetBit(LongWordarray[],const

c++ - __attribute((const)) 的不一致 gcc 行为

我在gcc中遇到了一个关于用__attribute((const))标记的运算符和函数的非常奇怪的行为。逻辑和算术运算符导致不同的优化,我不明白为什么。这并不是真正的错误,因为__attribute((const))只是一个提示,不能保证其效果,但这仍然非常令人惊讶。谁有任何解释?这是代码。所以我定义了一个__attribute((const))函数:intf(int&counter)__attribute((const));intf(int&counter){++counter;return0;}然后我定义了一个运算符(operator)测试宏。这是通过宏而不是模板/仿函数完成的,以

ios - Xcode 5 llvm-g++ 和 llvm-gcc 路径?

我正在使用GoogleTesseractOCR使用Xcode5为iOS7构建一个应用程序:http://lois.di-qual.net/blog/install-and-use-tesseract-on-ios-with-tesseract-ios/它在英语识别方面运行良好,但我无法将任何其他语言添加到项目中。然后我发现其他一些项目通过编译Tesseract库成功地做到了:http://inspirationteam.weebly.com/home/compile-use-tesseract-ocr-lib-301-on-ioshttp://tinsuke.wordpress.com

objective-c - 使用 LLVM GCC 4.2 不会让我将 CFStringRef _bridge 成 NSString

我需要在我的iPad应用程序中绘制一些图表,所以我遵循了本教程:http://recycled-parts.blogspot.com/2011/07/setting-up-coreplot-in-xcode-4.html其中我不得不将我的C/C++/Objective-C编译器更改为LLVMGCC4.2。(最初是AppleLLVMCompiler3.0)。现在,我无法将CFStringRef_bridge转换为NSString。我收到以下错误:'_bridge'undeclared(firstuseinafunction)谁能帮我解决这个问题??谢谢。 最佳