首页
学习
活动
专区
工具
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输出动态,编译可执行程序。

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

    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语言线程使用

    在处理多任务程序的时候使用多线程比使用多进程要更有优势,但是线程并不是越多越好,如何控制线程的个数呢?...' 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.4K30

    跨平台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 内存泄露检测 !

    1.1K10

    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的数据集,而如果需要使用代理模式则可以通过

    96430

    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

    46330

    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

    2.7K51

    常见的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.7K20
    领券