首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C_C++_静态_动态的制作和使用

这个应用模型是我们在开发过程中经常使用的,例如:作为一名资深程序员,你需要为公司的应用开发工程师提供一个轮子:modbus通讯。...Linux平台下 动态、静态的编译和使用; 动态和静态的间接使用使用make + Makefile 来编译/构建动态、静态、应用程序; 使用cmake来编译/构建动态、静态、应用程序...Windows平台下 动态、静态的编译和使用; 动态的导出机制; 使用cmake+VS2017来编译/构建动态、静态、应用程序。 3. 大概就是这个样子 ? 视频演示步骤 1....(2)libA输出静态,libB输出动态,编译可执行程序。 2....Windows平台 演示用cmake得到VS项目,然后完成下面操作: (1)libA输出动态,libB输出动态,编译可执行程序。 (2)libA输出静态,libB输出动态,编译可执行程序。

95210
您找到你想要的搜索结果了吗?
是的
没有找到

C语言线程使用

在处理多任务程序的时候使用多线程比使用多进程要更有优势,但是线程并不是越多越好,如何控制线程的个数呢?...' collect2: error: ld returned 1 exit status 错误原因是因为编译器链接不到线程文件(动态),需要在编译的时候通过参数指定出来,动态名为 libpthread.so...正确的编译命令为: # pthread_create 函数的定义在某一个中, 编译的时候需要加名 pthread $ gcc pthread_create.c -lpthread $ ....库函数,为了实现某些功能,在 Linux 平台下标准 C 库函数会调用相关的系统函数 6.2 线程 ID 比较 在 Linux 中线程 ID 本质就是一个无符号长整形,因此可以直接使用比较操作符比较两个线程的...ID,但是线程是可以跨平台使用的,在某些平台上 pthread_t 可能不是一个单纯的整形,这中情况下比较两个线程的 ID 必须要使用比较函数,函数原型如下: #include <pthread.h

3.3K30

C 语言使用标准开发

ST公司为了让用户更快上手开发,产生用户粘性,将外设寄存器提前定义好,准备一些常用接口函数供用户使用,这就是标准的雏形。 下面来感受下使用标准的简便性。...本章涉及的代码位于100ASK_STM32F103开发板资料的“5_程序源码\0_单片机开发模式的发展\2_C语 言使用标准开发\”。...首先使用C语言需要设置栈,这些初始化操作标准已经帮忙完成了,我们只需要编写主函数即可,如代码段 6.4.1 所示。...代码段 6.4.1 C 语言使用标准开发(main.c) #include "main.h" #include "stm32f10x.h" #include "driver_led.h" void delay...将GPIO属性封装为结构体,通过设置结构体成员的属性,完成对GPIO的设置; 以上代码就实现了对开发板三色灯的红色灯交替闪烁效果,读者可以打开配套资料的“5_程序源码\0_单片机编程模式的发展\ 3_C语言使用标准开发

1.6K20

跨平台c开发tbox:内存使用详解

而且根据tb_init实际传入的参数需求,large_pool有两种模式: 直接使用系统内存分配接口将进行大块内存的分配,并用双链维护,这种比较简单,就不多说了。...具体使用哪种方式,根据应用需求,一般的应用只需要使用方式1就行了,这个时候tb_init传tb_null就行了,如果是嵌入式应用,需要管理有限的一块内存空间,这个时候可以使用方式2, tb_init传入指定内存空间地址和大小...,并且重复率很高的模块,就可以通过string_pool进行优化,进一步减少内存使用,string_pool内部通过引用计数+哈希表维护,针对相同的字符串只保存一份。...用户可以根据自己的需要,如果不想使用tbox内置的内存池维护,就可以使用此分配器。...要使用tbox的内存检测功能,只需要切换到debug模式编译: $ xmake f -m debug $ xmake 内存泄露检测 !

96410

C++ LibCurl 使用方法

LibCurl是一个开源的免费的多协议数据传输开源,该框架具备跨平台性,开源免费,并提供了包括HTTP、FTP、SMTP、POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发送...当读者解压缩后,可打开VS2013 开发人员命令提示并切换带该目录中的curl-8.0.1\winbuild目录,通过执行如下两条命令即可分别实现编译静态或动态,我们以静态编译为主,执行如下命令读者可自行等待一段时间...-sspi-schannel目录内,读者可自行打开该目录,即可看到该目录内的头文件以及目录文件,如下图所示; 读者可自行配置这个静态,通常只需要配置include和lib文件即可,该使用很简单...curl_easy_init()函数对CURL对象进行初始化,接着通过调用curl_easy_setopt()并传入一个访问URL链接,当访问成功后则可调用curl_easy_perform()函数得到访问结果,这就是该基本使用方法...CURLINFO_STARTTRANSFER_TIME 从建立连接到传输开始所使用的时间 CURLINFO_REDIRECT_TIME 在事务传输开始前重定向所使用的时间 CURLINFO_SIZE_UPLOAD

1.3K51

常见的C++ json使用

常见的C++ Json 关于JSON的描述,可以参见维基百科https://en.wikipedia.org/wiki/JSON以及Introducing JSON,感觉C/C++对于Json解析没有其他高级语言比如...JavaC#、JavaScript的支持那么友好,尤其在序列化和反序列化方面。...miloyip/nativejson-benchmark,描述了常见的C/C++ Json解析的性能对比。...我觉得有位兄弟对于虑nlohmann/json和rapidjson这两个C++解析的评论和对比比较到位,所以建议不是很追求效率的条件还是建议使用nlohmann/json,否则可以选择腾讯的rapidjson...下面是我在实际项目中使用nlohmann/json以及Qt的Json对自定义结构体进行序列化和反序列化的一些代码片段: #ifndef _ADVANCEPARAMDEFINE_H #define _

3.3K20

C++ LibCurl 使用方法

LibCurl是一个开源的免费的多协议数据传输开源,该框架具备跨平台性,开源免费,并提供了包括HTTP、FTP、SMTP、POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发送...当读者解压缩后,可打开VS2013 开发人员命令提示并切换带该目录中的curl-8.0.1\winbuild目录,通过执行如下两条命令即可分别实现编译静态或动态,我们以静态编译为主,执行如下命令读者可自行等待一段时间...-sspi-schannel目录内,读者可自行打开该目录,即可看到该目录内的头文件以及目录文件,如下图所示; 读者可自行配置这个静态,通常只需要配置include和lib文件即可,该使用很简单...curl_easy_init()函数对CURL对象进行初始化,接着通过调用curl_easy_setopt()并传入一个访问URL链接,当访问成功后则可调用curl_easy_perform()函数得到访问结果,这就是该基本使用方法...CURLINFO_STARTTRANSFER_TIME 从建立连接到传输开始所使用的时间 CURLINFO_REDIRECT_TIME 在事务传输开始前重定向所使用的时间 CURLINFO_SIZE_UPLOAD

28630

C++ LibCurl 使用方法

LibCurl是一个开源的免费的多协议数据传输开源,该框架具备跨平台性,开源免费,并提供了包括HTTP、FTP、SMTP、POP3等协议的功能,使用libcurl可以方便地进行网络数据传输操作,如发送...图片当读者解压缩后,可打开VS2013 开发人员命令提示并切换带该目录中的curl-8.0.1\winbuild目录,通过执行如下两条命令即可分别实现编译静态或动态,我们以静态编译为主,执行如下命令读者可自行等待一段时间...-sspi-schannel目录内,读者可自行打开该目录,即可看到该目录内的头文件以及目录文件,如下图所示;图片读者可自行配置这个静态,通常只需要配置include和lib文件即可,该使用很简单...curl_easy_init()函数对CURL对象进行初始化,接着通过调用curl_easy_setopt()并传入一个访问URL链接,当访问成功后则可调用curl_easy_perform()函数得到访问结果,这就是该基本使用方法...POST请求方式,在使用POST请求时我们可以通过CURLOPT_COOKIEFILE参数指定Cookie参数,通过CURLOPT_POSTFIELDS指定POST的数据集,而如果需要使用代理模式则可以通过

51830

C++ IO介绍及使用方式

常用使用的IO以及接口 istream (输入流) 类型,提供输入操作。 ostream (输出流) 类型,提供输出操作。 cin,一个 istream 对象,从标准输入读取数据。...IO类 IO类型和头文件头文件 类型iostreamistream,wistream 从流读取数据ostream,wostream 向流写入数据iostream,wiostream 读写流...IO中还有两个类似的操纵符, flush 和 ends。flush 刷新缓冲区,但不输出任何额外的字符。ends 向缓冲区插入一个空字符,然后刷新缓冲区。...指向流中读写位置的流指针 我们还可以通过使用以下成员函数来读出或配置这些指向流中读写位置的流指针: tellg() 和 tellp() 这两个成员函数不用传入参数,返回pos_type 类型的值(根据ANSI-C...对二进制文件,你可以任意使用这些函数,应该不会有任何意外的行为产生。 string 流这里不做介绍了,如果感兴趣可以自行学习,可参考 《C++ primer》 以上的内容参考 《C++ primer》

1.8K20

C++stl_c++

熟练使用STL标准是每个C++程序员的必备技能。 C++ 标准程序发展至今,几乎所有内容都被设计为了模板的形式,STL 已经成为 C++ 程序的重要组成部分。...可以这么说,如果 C++ 不支持 STL 标准模板,就无法使用程序。...通过引入模板,C++ 引申出了泛型编程技术。简单的理解泛型编程,即使用该技术编写的代码,可以支持多种数据类型。...在 C++ 支持模板功能,引入了泛型编程思想的基础上,C++ 程序员们想编写出很多通用的针对不同数据类型的算法,其中 STL 脱颖而出成为 C++ 标准,并被引入 C++ 标准程序。...总的来说,STL 模板C++ 标准程序的重要组成部分,为 C++ 程序员提供了大量的可扩展的程序框架,高度实现了代码的可重用性,并且它是内置的,不需要额外安装,使用非常方便。

43440
领券