- 博客(125)
- 收藏
- 关注
原创 Halide AOT模式
这种模式会提前,会提前编译好,变成dll什么的,可接受任何输入的参数运行。然后这样调用,必须要make一下前一个file,才有后面的.h。
2024-07-03 17:57:48
212
原创 为什么circular buffer 要是8的倍数
综上所述,选择8的倍数(即2的幂次方)的缓冲区大小可以显著优化性能,简化硬件设计,并更好地利用处理器缓存,从而在许多应用场景中成为常见的选择。
2024-07-03 17:22:21
295
原创 How to atomically update a maximum value?
c++ - How to atomically update a maximum value? - Stack Overflow
2024-06-21 19:07:17
115
原创 warning LNK4042: 对象被多次指定;已忽略多余的指定
然后另一个dll用到了这个obj,还用了这句,target_precompile_headers(${TARGET_NAME}_cpp REUSE_FROM algos_obj) 就会出问题。cmake_pch.obj : warning LNK4042: 对象被多次指定;因为有些cpp中删掉了include .h 也可以编译通过。当algos_obj中用到了预编译头文件的cmake_pch.obj。
2024-03-28 14:54:43
149
原创 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
这个问题可能是由于链接器发现了在链接时存在冲突的符号,这些符号在默认的运行时库 "LIBCMT" 和其他库中都有定义。当链接器找到多个定义相同的符号时,就会报告冲突。冲突可能是因为你在链接时使用了不同版本的库,或者是因为你的代码中使用了某些特定于库的功能,导致了符号冲突。通过排除默认库并确保使用统一的库版本,可以帮助解决这些问题。选项来排除默认库 "LIBCMT" 的使用,以便在链接时不再考虑它。这样,你可以确保链接器使用其他库中的定义,从而解决符号冲突问题。解决这个问题的常见方法之一是通过使用。
2024-03-28 14:36:12
502
原创 cmake使用预编译头文件功能后,不需要include相关文件了
2. 类似于VS里创建的项目,即.cpp显式#include "stdafx.h",那就不需要写这些include了。1. 类似于vision,即.cpp未显式include "xx_pch.h",最好还是写上这些include。在obj中的.h 文件就不需要再include 对应的文件了。一般来说,相比于编译时间,更影响开发效率的是IDE的解析时间。重复写,不增加编译时间。
2024-03-28 11:53:52
239
原创 多个数字二进制加法
https://www.google.com/search?q=three+binary+numbers+addition&sca_esv=274934f892c43701&sca_upv=1&ei=2cPqZZ_CAcrK2roPiKqq2A0&oq=three+binary+nu&gs_lp=Egxnd3Mtd2l6LXNlcnAiD3RocmVlIGJpbmFyeSBudSoCCAAyBBAAGB4yBhAAGAgYHjIGEAAYCBgeMggQABgIGB4YDzIGEAAYBRgeMgYQABg
2024-03-08 15:57:58
181
原创 make_shared_for_overwrite
不过这个仅限于内置类型。如果是用户写的,就会增加自动初始化(调用客户写的初始化)。这个函数用来malloc数组,但不初始化。
2024-02-21 19:53:48
157
原创 halide package cmake的设置方式
3 然后设置一下那个Halide_DIR就可以了。2 把提前下载好的halide放到一个位置。里面用到halide。这时会提示找不到package。按照那个提示做就行。
2024-02-19 17:52:26
169
原创 扣库的函数经验
有的库确实可以提出来的比如这个库根据自己的需要是可以,把内容抠出来的,重新build的。我就自己新建了一个vs的工程,然后把源文件弄进来build。缺哪个文件就把哪个文件加到工程里。
2024-02-01 11:35:02
299
原创 类形设计经验
但是每个形状都有共同的成员,也有各自的成员。也有个别的类型有相同的成员。这样的优点是:不用在各自的子类中有相同的成员。里面有所有类型的成员变量。所有子类,有自己的接口访问自己各自的成员。这个类提供公用成员访问接口。然后所有类型继承这个基类。
2024-01-17 14:46:34
350
原创 代码结构:为何重要算法不和接口编译到一个dll里面
比如,有时单独改一个接口,只要重新构建那个接口的dll就可以了。如果大家都写在一个dll里面,那么每次改一下接口,就需要重构整个算法模块。2 每个算子的dll我们理解,内容主要是其接口的实现。而真正的算法内容是在上面的algorithm.dll中。3 所以这种dll的拆分也好,或者cmake中的obj,就有这种好处。就是将build的单元解耦开。提升build时的效率。1 需要每个算子是一个dll。优点是方便业务上,针对不同的算子精细化的更新,或者售卖。这里是vision master的例子。
2024-01-12 11:14:13
416
原创 cmake自动配置Install的路径
会自动设置这些变量,使得在不同系统上能够使用相同的 CMakeLists.txt 文件,并且符合 GNU 标准。这样,你可以在你的项目中使用这些变量,而不用硬编码目录路径,从而提高了你的项目的可移植性。命令指定了可执行文件、库文件和头文件的安装路径。这样做使得你的项目更容易在不同的系统上进行移植和安装。是在 CMake 项目中常见的一种做法,主要是为了使用 GNU 标准的目录布局来定义安装目录。模块提供了一组变量,这些变量表示了标准的 GNU 安装目录。以下是一个简单的例子,演示了如何使用。
2024-01-05 11:26:55
856
原创 cmake formatter
安装完插件后,需要pip install cmake_format 一下,就work了。这里vscode里面有个插件,用来格式化cmake文件。这个插件就是 cmake-format。
2024-01-04 17:43:08
429
1
原创 install安装路径设定
因为安装路径的前缀 CMAKE_INSTALL_PREFIX 都在外面都写了。所以在具体的dll 在安装时,就写相对路径就行了。
2023-11-21 15:28:22
62
原创 warning C4251
c++ - Warning C4251 when building a DLL that exports a class containing an ATL::CString member - Stack Overflow
2023-11-20 18:15:40
132
原创 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
修改方法:改变编码方式。utf8-with BOM就可以了。我用的vscode。这是需要修改编码的方式。原因就是:文件中的换行符可能有问题。
2023-11-20 17:19:57
570
原创 pip install python是关于 NMake Makefiles报错
【代码】pip install python是关于 NMake Makefiles报错。
2023-11-02 19:00:01
201
原创 CMake 坑之添加文件后不修改CMakeList.txt,则文件加不进来
应该是这个clean and rebuild,并没有把所有的东西都clean掉。或者 cmake delete cache and reconfigure。改进了下对应的CMakeList.txt。这时会重新cmake这个文件。我试了无数次的 clean and rebuild 都没用。发现是新建的文件没有被读取进来。有了新的文件 需要重新configure一下。我在一个文件夹中加了一个.h和对应的cpp。比如都进来的文件时没有clean掉的。然后再把改动删掉,就没有问题了。这里.h中的类会被导出。
2023-10-25 17:28:12
174
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人