草庐IT

standard-library

全部标签

c++ - 用标准库(静态)编译静态库链接

我正在尝试编译一个静态库(我们称之为library.a)。该库消耗标准库的资源。库可以通过某种方式静态链接标准库。我已经证明了这样的事情:g++-clibrary-static-libstdc++-olibrary.oarrcslibrary.olibrary.a但是如果我这样做,就没有标准库的链接。然后我用这种方式证明了:g++library-static-stdlib-olibrary.oarrcslibrary.olibrary.a但是让我添加一个主要功能。是否有可能通过静态链接标准库(std::string、std::vector、std::cin等...)来创建静态库。谢谢:

仿写unity的standard一样效果的PBR shader

1.首先了解一下PBR的物理理论:光在照射到物体表面时,发生了反射(Reflection,镜面反射)和折射,而进入物体内的光一部分被再次散射出来,另一部分被吸收了(往往会转变为热量消耗掉)。散射出来的光有漫反射(diffsion),3S(SSS)等。PS:在游戏当中,如果画面像素大于散射距离的话意味着这些次表面散射产生的距离可以被忽略,反之,我们就需要用特殊shader来模拟3S效果。2.PBR:(直接光+间接光)2.1直接光(含漫反射和镜面反射):翻译成人话:BRDF方程的配平系数:(不是很懂,两个点乘是和微平面有关)公式推导过程:PBR反射方程推导2.1.1PBR的Lambert漫反射计算

统一实际分布中的 C++ 错误?

这个问题在这里已经有了答案:Is1.0avalidoutputfromstd::generate_canonical?(3个答案)关闭7年前。我正在尝试使用std::uniform_real_distribution(a,b)生成随机float,我发现输出等于上限的情况b.根据:http://www.cplusplus.com/reference/random/uniform_real_distributionhttp://en.cppreference.com/w/cpp/numeric/random/uniform_real_distribution这不应该发生。同时gcc-4.9

c++ - Boost Graph Library astar和导航网格

我在做一个项目SFML/C++,我需要生成一个图来连接它们之间的障碍物以方便寻路,所以我有兴趣生成一个导航网格,我将应用boostA*算法。有点像这样:但是我在使用BoostGraphLibrary实现它时遇到了很多问题(如果您有一个更合适的库,我很感兴趣)。首先,我创建一个具有适当结构的adjacency_list:structWayPoint{sf::Vector2fpos;};structWayPointConnection{floatdist;};typedefboost::adjacency_listWayPointGraph;typedefWayPointGraph::ve

c++ - 编译cuda文件报错: "runtime library" mismatch value 'MDd_DynamicDebug' doesn't match value 'MTd_StaticDebug' in vectorAddition_cuda. o

我尝试在Qt5.2和MSVC2012环境下编译一个cuda文件。在开始我的项目之前,我仔细阅读了问题并回复:CompilingCudacodeinQtCreatoronWindows.但是即使我简单地复制代码并在qt中生成2个文件,仍然会弹出一些错误/main.cpp/vectorAddition.cu错误是:errorLNK2038:mismatchdetectedfor'RuntimeLibrary':value'MDd_DynamicDebug'doesn'tmatchvalue'MTd_StaticDebug'invectorAddition_cuda.o我完全不知道如何修复这

c++ - 为什么 cmake_link_libraries 包含静态库?

我希望我的可执行文件再次链接到共享库(libmy_so.so),而共享库又是使用静态库(libmy_static_lib.a)构建的。当我做的时候target_link_libraries(my_exemy_so)我在编译时看到cmake在构建行上添加了libmy_static_lib.a。这不是我想要的,我不明白为什么需要这样做。有没有办法解决?LINK_PRIVATE似乎没有任何区别。我使用CMake2.8.9。 最佳答案 来自CMakedocumentationfortarget_link_libraries:target_l

c++ - stringstream 内部是如何工作的?

我问的是性能方面的问题。stringstream只是一个字符串/vector,所以写入它可能会导致其整个内容被复制到更大的内存块,还是以更棘手的方式(例如,字符串列表或其他)完成? 最佳答案 27.7.3/1表示basic_ostringstream使用basic_stringbuf。我认为27.7.1.3/8说basic_stringbuf通过重新分配缓冲区来腾出空间,甚至不能保证指数增长(因此分摊O(1)追加)。但我发现标准的流部分非常难以理解,并且始终存在“假设”规则。所以我不能向你保证,在下面使用deque(并在有人请求字符

c++ - 我如何向图书馆工作组提出一项功能?

我想提出并讨论一个我认为可能与C++库相关的特性,发布我的提案的最合适的方式或地点是什么?我想强调一个事实,我只关心标准库,而不关心语言本身。 最佳答案 第一个停靠港肯定是ISOCPP本杰明林德利指向的页面。officialC++committeepage列出即将到来的日期,例如,提交截止日期(下一个是2014-01-17)和即将举行的session(下一个是2014-02-10到2014-02-15在Issaquah)。当您提交提案时,它需要采用合理完整的形式,因为将讨论此版本,而不是在提交截止日期和session之间创建的更新版

c++ - 将 raw operator new、placement new 和 standard delete 结合起来是否合法?

伙计们!出于好奇——以下代码可能不合法,对吗?T*p=::operatornew(sizeof(T));//allocatememoryforaTnew(p)T;//constructaTintotheallocatedmemorydeletep;//deletetheobjectusingthestandarddeleteoperator 最佳答案 没有。您只能删除从新返回的内容-没有异常(exception)。 关于c++-将rawoperatornew、placementnew和s

c++ - "the procedure entry point _ZNSt8_detail15_List_node_base7_M_hookEPS0_ could not be located in the dynamic link library libstdc -6.dll."

有个小问题。我有C++代码,它链接到一些库。我以前有源代码的(原始)exe,它在第一台机器上运行完美。还有第二台机器,我在那里处理源代码,更改它,等等。在第二台机器上,该源代码的构建工作正常,当我复制second.exe并尝试在第一台机器上运行它时萌芽它显示错误信息"theprocedureentrypoint_ZNSt8_detail15_List_node_base7_M_hookEPS0_couldnotbelocatedinthedynamiclinklibrarylibstdc++-6.dll."有一件事,second.exe被复制到与original.exe相同的文件夹中,