栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

win10-VMware(ubuntu)-VS2019-C++-跨平台编译(2)-动态链接库

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

win10-VMware(ubuntu)-VS2019-C++-跨平台编译(2)-动态链接库

动态库:在windows下后缀为.dll ,在ubuntu下后缀为.so.
本文以封装的SOCKET为例:
xsocket:为被调用的动态库:xsocket.dll ,xsocket.so,xsocket.lib
tcpserver:调用动态库的可执行程序
1.在ubuntu 下构建目录:bin,src,lib,doc
2.win10 下用VS2019在一个解决方案中创建两个工程,并编译
   动态库导出设置
3.ubuntu 下xsocket和tcpserver分别写makefike并编译
 



1.在ubuntu 下构建目录:bin,src,lib,doc
2.win10 下用VS2019在一个解决方案中创建两个工程,并编译
  2.1 库文件xsocket 设置:   添加动态库导出宏

//在需要导出的类前面添加宏
#ifdef XSOCKET_EXPORTS
#define XSOCKET_API __declspec(dllexport)//导入
#else
#define XSOCKET_API __declspec(dllimport)//导出
#endif
class  XSOCKET_API XTcp
{
    
};



  
  2.2 tcpserver 调用xsocket

启动项目

 项目依赖项

 

 

 

 3.ubuntu 下xsocket和tcpserver分别写makefike并编译
  3.1xsocket:makefile
  

#$+ 对应依赖项  $@对应目标  -fpic 代码与位置无关 -shared 编成动态库 -std=c++11
#tab键而非空格键
libxsocket.so:XTcp.cpp XTcp.h
    g++ $+ -o  $@ -fpic -shared -std=c++11

#复制到系统路径下:
cp *.so /usr/lib

 3.2tcpserver:makefile
 

tcpserver:tcpserver.cpp
	g++ $+ -o $@ -I../xsocket/xsocket  -std=c++11 -lpthread -lxsocket -L../xsocket/xsocket
#../xsocket 头文件  -std=c++11 -lpthread  用来表明头文件的  -lxsocket 引用库名  -L../xsocket 增加了库路径
#-L查找动态链接库的路径

 3.3运行的编译脚本
 

#直接在tcpserver目录下:run bash
export LD_LIBRARY_PATH=../xsocket
./tcpserver

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/975048.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号