
c++
文章平均质量分 95
wa1ttinG
这个作者很懒,什么都没留下…
展开
-
通俗举例讲解动态链接、静态链接
b可执行文件执行时,遇到sayHello,就去动态库so中找这个函数的实现位置,这个找的位置有几类,我们经常用的是一个环境变量,叫LD_LABRARY_PATH,假设这里找到了,找到之后就将a.so加载到内存,链接,进行执行。静态链接另一个问题是对程序的更新,部署和发布也会很麻烦,我如果在a中更新了sayHello,那么生成的b,c可执行文件里的sayHello还是老的,需要重新连接,很麻烦耦合度很高。c执行时再用到a.so,此时a.so以及被加载到了内存中,所以不用再重新加载了,直接链接就能使用了。原创 2023-04-17 22:33:02 · 1414 阅读 · 0 评论 -
自己的完整c++ cuda包
使用编辑器clion,安装好cudatoolkit,cudnn,pytorch环境,编译工具gcc等等。记得要设置好cudatoolkit的环境变量和动态链接库,这样到时候才能找到cudatoolkit和cudnn安装教程可看。原创 2023-04-16 20:59:20 · 1319 阅读 · 0 评论 -
c++头文件、namespace 的理解、#include、 编译模式
上面已经提到了一点最好是只有声明,尽量不要有定义,如果a.h中定义了变量int a=1,b.h中也定义了int a=1,那么如果有一个文件同时引用了a和b两个头文件,那么根据include是完全替换代码,也就是int a=1会重复定义两次,则会报重复定义的错误。尤其是全局定义,定义在命名空间中就还好,命名空间不重复就不会算成重复定义。原创 2023-04-15 09:48:22 · 2376 阅读 · 0 评论