草庐IT

gnu-make

全部标签

c++ - Mac OS X Lion 上的 GNU GCC 4.6(.1) 编译器

对这种开发还很陌生。想知道是否有人能指出我正确的方向。据我所见,使用MacPorts有一个错误,它不起作用。然而,我在四处阅读并看到了这个:http://beardedcodewarrior.net/2011/07/25/building-gcc-4-6-1-on-mac-os-x-lion/但仍然无法正常工作。当我为gcc执行make时,它​​花了3个多小时才完成,然后一旦我执行sudomakeinstall,它成功完成但是当我尝试gcc--version时,它仍然说gcc版本4.2.1(基于AppleInc.build5658)(LLVM内部版本2335.15.00)。我需要4.6

c++ - GNU MP Bignum 库的数值问题

我正在做一些数字运算,这需要高精度算术。我正在使用GNUMP库,并且accordingtotheGMPmanual:“float或简称Float,是具有有限精度指数的任意精度尾数。”尽管尾数应该具有任意精度,但我仍然遇到精度问题。为了避免让您厌烦我的实际代码,这里有一个近乎最小的工作示例来说明我的问题。该代码计算出9.3^15、9.8^15和(9.3*9.8)^15。在我的机器上,(9.3^15)*(9.8^15)和(9.3*9.8)^15的值从第16位开始开始不同,在这种情况下导致错误(大约)4.94*10^13。任何帮助将不胜感激。代码如下。#include#include#inc

c++ - 收集 2 : Ld returned 1 exit status build make error

编译器:Qt语言:C++这个程序不适合我哈哈,这已经是我第三次求助了,快把我逼疯了(谢谢大家对我的耐心和帮助)我尝试运行我的程序(又是第一百万次)因为我无法整理出ostream,所以我注释掉了main中的所有cout函数,这样我就可以处理我的其余代码了。但是当我尝试运行它时,我得到了collect2:ldreturned1exitstatusinmybuildissues。我切换到编译输出...天哪..RunningbuildstepsforprojectList...Configurationunchanged,skippingqmakestep.Starting:"C:/Qt/20

c++ - 为什么 sizeof...(T) 这么慢?在没有 sizeof...(T) 的情况下实现 C++14 make_index_sequence

我找到了C++14make_index_sequence“算法”的实现:templatestructindex_sequence{usingtype=index_sequence;};templateusinginvoke=typenameT::type;templatestructconcate;templatestructconcate,index_sequence>:index_sequence{};//\///----------//Ithinkhereisslowly.templatestructmake_index_sequence_help:concate>,invoke

c++ - 如何使用 dladdr 获取 gnu 间接函数的名称?

我无法获得带有间接函数的elf的gnu扩展以与dladdr一起工作。在下面的例子中,fabs和sin是libm中的两个动态函数,其中sin也是一个间接函数从其指针查找fabs效果很好,但未找到sin。我已经尝试了各种标志dlopen和-rdynamic但没有成功。调试器显示了如何从gnu-indirect-function变量到__sin_avx评估sin。我是不是遗漏了什么或者dladdr不支持间接函数?/*compiledwithg++-5-fPIC-ldl*/#include#include#includecharconst*name(void*arg){void*h=dlope

c++ - 什么是未知大小的 make_shared?

在this回答T.C.州boost::make_sharedetc.supportarraytypes-eitheroneofunknownsize,oroneoffixedsizeboost::shared_ptrsh_arr2=boost::make_shared(30);boost::shared_ptrsh_arr3=boost::make_shared();首先,make_shared如何支持未知大小的数组类型?我认为数组大小是必需的。其次,sh_arr2和sh_arr3有什么区别?两者似乎都在创建一个int大小为30的数组。 最佳答案

c++ - Cmake 外部库.a

我这里有一个外部库:${PROJECT_SOURCE_DIR}/thirdparty/yaml-cpp/它是由Makefile制作的:thirdparty/Makefile。我正在像这样执行该makefile:add_custom_target(yaml-cppCOMMANDmakeWORKING_DIRECTORY${CMAKE_SOURCE_DIR}/thirdparty)然后我尝试链接构​​建到thirdparty/yaml-cpp/build/libyaml-cpp.a的库。这是不起作用的部分:target_link_libraries(load_balancer_node${

c++ - 警告 : non-static data member initializers only available with -std=c++11 or -std=gnu++11 [enabled by default]

这个问题在这里已经有了答案:C++ArrayInitializersWarnings(2个答案)关闭8年前。我刚刚在我的机器上安装了最新版本的cygwin和eclipseluna。它工作正常,我能够运行我的项目。但是,当我构建它们时,我收到了我不明白的警告。例如,这是我从“c++Primer”一书的网站上获得的头文件“Sales_item.h”的警告:warning:defaultedanddeletedfunctionsonlyavailablewith-std=c++11or-std=gnu++11[enabledbydefault]Sales_item()=default;^..

c++ - 非标准 gnu 案例范围的标准替代方案

我有一个快速解决方法的问题,以享受非标准gnu的好处caseranges.例如,非标准:case1...5:可以替换为:case1:case2:case3:case4:case5:可能一些宏解决方案可能是有序的。根据我的内存,宏循环无法循环进行大量迭代。出于这个原因,如果范围“很大”,比如以千为单位怎么办? 最佳答案 如果您在谈论预处理器循环,我猜您正在考虑来自boost的预处理器元编程。虽然它可能非常便携,但循环似乎仅限于255“迭代”。事实上,实现并不是一个真正的循环,它更像是一个硬编码的循环展开(因此是限制)。您当然可以将其扩

C++11 原子 : does it make sense, 或者甚至可以将它们与内存映射 I/O 一起使用?

据我了解,Cvolatile和用于内存栅栏的可选内联asm已用于在内存映射I/O之上实现设备驱动程序。在Linux内核中可以找到几个示例。如果我们忘记了未捕获异常的风险(如果有的话),用C++11原子替换它们是否有意义?或者,这有可能吗? 最佳答案 通常,您可以用原子替换内存栅栏,但不能用volatile替换内存栅栏,除非它与专门用于线程间通信的栅栏一起使用。关于内存映射I/O,原子性不够的原因是:volatile向您保证程序中对该变量的所有内存访问确实发生并且它们发生(在单个线程中)完全按照您指定的顺序进行。std::atomic