草庐IT

assembly-references

全部标签

c++ - 对符号 X509_free 的 undefined reference

我正在尝试使用mongodb旧版C++驱动程序。(这里的“旧版”是指生产版本,fwiw。)在使用clang++3.6和boost1.55(来自ubuntu包存储库)并使用从git中提取的mongo-cxx-driver的ubuntu15.04主机上,我编译了驱动程序,然后尝试编译测试程序。$clang++-std=c++14mongo.cc-pthread-lmongoclient-lboost_thread\-lboost_system-lboost_regex-lssl-omo我看到这个错误:clang++-std=c++14mongo.cc-pthread-lmongoclien

c++ - 对符号 X509_free 的 undefined reference

我正在尝试使用mongodb旧版C++驱动程序。(这里的“旧版”是指生产版本,fwiw。)在使用clang++3.6和boost1.55(来自ubuntu包存储库)并使用从git中提取的mongo-cxx-driver的ubuntu15.04主机上,我编译了驱动程序,然后尝试编译测试程序。$clang++-std=c++14mongo.cc-pthread-lmongoclient-lboost_thread\-lboost_system-lboost_regex-lssl-omo我看到这个错误:clang++-std=c++14mongo.cc-pthread-lmongoclien

assembly - 将寄存器加载到自身的指令的目的是什么?

在查看Gameboy的指令集时,我遇到了如下指令:LDA,ALDB,BLDC,CLDD,D...每条指令在thistable中都有自己的操作码。,这让我觉得由于可能的操作码数量的限制,它们有些重要。我首先认为它可能会取消引用该寄存器中的指针并将值存储在该指针(likeinthisquestion)中,但在emulator中,LDA,A实现为:Z80._r.a=Z80._r.a它们似乎对处理器的状态没有影响(只是将寄存器设置为它们自己的值),并且与NOP执行相同的周期数。为什么将这些操作码包含在指令集中以及它们的用途是什么? 最佳答案

assembly - 实模式内存寻址中的段和偏移量是多少?

我正在阅读有关内存寻址的信息。我阅读了有关段偏移的信息,然后阅读了有关描述符偏移的信息。我知道如何在实模式下计算确切的地址。这一切都很好,但我无法理解偏移量到底是什么?我阅读的所有地方:Inrealmode,theregistersareonly16bits,soyoucanonlyaddressupto64k.Inordertoallowaddressingofmorememory,addressesarecalculatedfromsegment*16+offset.这里我可以理解第一行。我们有16位,所以我们最多可以寻址2^16=64k。但是第二行是什么?段代表什么?为什么要乘以

assembly - 字和字节有什么区别?

我做了一些研究。一个字节是8位,一个字是内存中可以寻址的最小单位。单词的确切长度各不相同。我不明白的是有一个字节有什么意义?为什么不说8位?我问了一个教授这个问题,他说现在大多数机器都是字节寻址的,但是那会是什么词呢? 最佳答案 字节:今天,一个字节几乎总是8位。然而,那个wasn'talwaysthecase并且没有“标准”或规定这一点的东西。由于8位是一个方便使用的数字,因此它成为了事实上的标准。字:naturalsizewithwhichaprocessorishandlingdata(寄存器大小)。今天遇到的最常见的字长是8

c++ - 对静态 constexpr 的 undefined reference

在此代码段中:templatestructFoo{staticconstexprstd::arrayarr{{0}};staticconstchar*data(){return&arr[0];}};templateconstexprstd::arrayFoo::arr;intmain(){std::cout::data()使用gcc5.2我得到了对Foo::arr的undefinedreference,而clang3.7给出了编译时错误:declarationofconstexprstaticdatamember'arr'requiresaninitializer出了什么问题,怎么办s

c++ - 在折叠表达式中使用 lambda 时出现 "Uninitialized captured reference"错误 - clang 与 gcc

考虑以下代码:templateautofold_left(F&&f,X0&&x0,X1&&x1,Xs&&...xs){autoacc=f(x0,x1);return([&](autoy){returnacc=f(acc,y);}(xs),...);}conststd::stringa{"a"},b{"b"},c{"c"},d{"d"},e{"e"};constautocat=[](autox,autoy){return"("+x+","+y+")";};调用和打印fold_left(cat,a,b,c)时,g++7和clang++5都输出:((a,b),c)调用和打印fold_left

c++ - 奇怪的 undefined reference `vtable

我在"undefinedreferencetovtable..."中困了一整天。其实我见过很多关于"undefinedreferencetovtable..."的回答处理例如:undefinedreferencetovtable"Transaction"Undefinedreferencetovtablehttps://gcc.gnu.org/faq.html#vtablesUndefinedreferencetovtable有些人的问题是忘记写虚函数,有些人忘记将.cpp文件添加到构建目录中。但我想我已经注意到了。我想做以下步骤:我想将类A_1和A_2编译成一个共享库libA。A_2

c++ - 使用 'undefined reference to ` boost::system::get_system_category()' 链接 boost barfs

我在静态链接使用boost1.35库的应用时遇到问题。我正在使用带有G++4.3.2的linuxdebianLenny盒子。没有-static的链接可以顺利进行。具体来说,g++-Wall-Wextra-pedantic-ggdb3-O0-static-lboost_thread-mt-lboost_system-mt-lboost_program_options-mt-lssl-lpthread-lcryptomain.ocomandos.outils.otunnel.oopciones.odecode.osysutils.o-osappmain.o:Infunction`__sta

c++ - 什么是 "rvalue reference for *this"?

在clang的C++11statuspage中遇到了一个名为“*this的右值引用”的提议。.我已经阅读了很多关于右值引用并理解它们的内容,但我认为我不知道这一点。我也无法使用这些术语在网络上找到很多资源。页面上有提案文件的链接:N2439(将move语义扩展到*this),但我也没有从那里得到太多示例。这个功能是关于什么的? 最佳答案 首先,“*this的引用限定符”只是一个“营销声明”。*this的类型永远不会改变,请参阅这篇文章的底部。不过用这种措辞更容易理解。接下来,下面的代码根据函数的“隐式对象参数”的ref-qualif