当前位置: 首页 > news >正文

【JNA】JAVA使用JNA调用C++ dll文件(3)编译Linux版本.so文件

一、安装 Visual Studio 的 “Linux 开发” 工作负载

  1. 打开 Visual Studio 安装程序

    • 如果已经安装了 Visual Studio,可在开始菜单中找到并运行 “Visual Studio Installer”
    • 如果尚未安装 Visual Studio,需先从微软官网下载并启动安装程序
  2. 选择修改现有安装

    • 在安装程序界面中,找到已安装的 Visual Studio 版本(如 Community、Professional 或 Enterprise)
    • 点击该版本下方的 “修改” 按钮
  3. 选择 Linux 开发工作负载

    • 在弹出的工作负载选择界面中,找到左侧列表中的 “其他工具集”
    • 勾选 “Linux 开发” 工作负载(可能会显示为 “Linux 开发与 C++”)
    • 可以点击工作负载右侧的箭头展开,选择需要的可选组件(如特定的编译器或调试工具)
  4. 安装工作负载

    • 点击界面右下角的 “修改” 按钮(或"安装"按钮,如果是首次安装)
    • 等待安装程序下载并安装所选组件,这可能需要一段时间,具体取决于网络速度和选择的组件数量
  5. 验证安装

    • 安装完成后,启动 Visual Studio
    • 创建新项目时,检查是否有 Linux 相关的项目模板(如 “Linux 控制台应用程序”)
    • 也可以在现有项目的属性中查看是否有 “Linux” 相关的配置选项
    • 尝试通过 “工具”→“选项”→**“跨平台**”→“连接管理器” ,添加远程 Linux 主机(填 IP、用户名、密码等 ),测试能否连接。若能正常连接,一般说明 Linux 开发环境配置初步到位。

安装完成后,你就可以使用 Visual Studio 开发和编译面向 Linux 平台的应用程序和共享库(.so 文件)了。如需连接到远程 Linux 机器或 WSL 进行编译和调试,还需要在 Visual Studio 中进行相应的连接配置。

二、创建Linux动态库(.so)项目

1. 创建“控制台应用”项目

选“控制台应用程序(Linux)”模板创建项目,这是最基础的 Linux C++ 工程模板。

2. 修改项目属性为动态库

  • 右键项目 → 属性配置属性 → 常规
  • “配置类型” 从“应用程序 (.out)”改成 “动态库 (.so)” ,这样编译后就会输出 .so 动态库文件。

3. 调整代码与依赖

  • 若原 Windows DLL 代码有 __declspec(dllexport) 这类 Windows 特有导出语法,在 Linux 下要去掉,因为 Linux 动态库无需这种标记(靠符号暴露或版本脚本控制导出 )。
  • 替换 Windows 专属头文件(如 windows.h ),确保代码用跨平台或 Linux 兼容的 API 。

4. 配置远程 Linux 环境

Visual Studio 需要连接到 Linux 环境(物理机、虚拟机或 WSL)进行编译:

  • 在顶部菜单栏选择 工具(Tools)→ 选项(Options)
  • 展开 跨平台(Cross Platform)→ 连接管理器(Connection Manager)
  • 点击 添加(Add),输入 Linux 环境信息:
    • 主机名(Host name):Linux 机器的 IP 地址或 hostname
    • 端口(Port):默认 22(SSH 端口)
    • 用户名(User name)和密码(Password):Linux 系统的登录凭据
  • 测试连接成功后,点击 确定
    在这里插入图片描述

5. 项目属性配置

在 Visual Studio 中配置库的搜索路径,让链接器能找到thostmduserapi_se.sothosttraderapi_se.so这两个库:

1)右键点击项目 → 属性配置属性链接器常规
2)在 附加库目录 中添加库文件所在的路径(例如 /path/to/libs/,即步骤 1 中找到的路径)。
注意:路径需使用 Linux 格式(/ 分隔),而非 Windows 格式(\)。

在这里插入图片描述

3)确认链接器命令中已正确引用库:

  • 项目属性 → 链接器输入附加依赖项,确保包含 thostmduserapi_se.sothosttraderapi_se.so
  • (可选)如果库名前没有 lib 前缀,无需加 -l,直接写库文件名即可。
  • 将CTP的原文件放在项目中

在这里插入图片描述

6. 编译生成 Linux 格式文件

  • 选择合适的配置(如 DebugRelease
  • 在菜单栏点击 生成(Build)→ 生成解决方案(Build Solution)
  • 编译完成后,输出文件(.so 或 .out)会被传输到 Linux 机器的指定目录,默认路径通常为:
/home/用户名/projects/项目名/配置名/

在这里插入图片描述
在这里插入图片描述

7. 验证输出文件

可以通过以下方式确认生成的是 Linux 格式文件:

  • 在 Linux 终端中,使用 file 命令检查:
    file libmylib.so  # 应显示 "ELF 64-bit LSB shared object" 等信息
    

在这里插入图片描述

http://www.dtcms.com/a/399880.html

相关文章:

  • MyBatis 操作数据库(⼊⻔)
  • [baka编程]初入C++,如何理解新概念——类和对象
  • 竞价网站做推广一款app是如何制作出来的
  • 北京建设银行网站广东官网网站建设平台
  • 淘宝客怎么在网站做推广网站每年续费费用
  • Pyside6 + QML - 多线程01 - QThread 基础(子线程执行耗时任务)
  • 农产品应该建设哪个网站屏幕分辨率 网站开发
  • 摄影作品展示网站flash全站源码山东住建部和城乡建设官网
  • 购物网站功能模块图使用div建设的网站
  • Python爬虫实战:获取上海石油天然气交易中心2025年液化天然气交易数据并做分析
  • springboot项目添加请求url及请求入参日志
  • Spring XML 配置简介
  • 阿里云虚拟主机如何上传网站国外flash网站
  • NXP - 安装后的MCUXpresso IDE里面有所有的支持包,不用另外去下载
  • 公司网站域名更改怎么做做美团旅游网站多少钱
  • 网站建设初稿wordpress 教學
  • 【nvm for windows安装问题】手动安装方案
  • 网站定制开发怎么写网站后台管理系统图片
  • 如何本地搭建网站贵阳市门户网站
  • 网站设计理念怎么写wordpress插件清理
  • 语义精炼技巧生成对抗网络(3)基于Wasserstein GAN 的特征生成
  • 3.算法——遗传算法
  • html怎么做网站版块网站空间购买官方
  • 成都建站网站软件开发涵盖网站开发吗
  • DDOS高防的优点是什么
  • 电子电气架构 --- 引导式诊断
  • 视觉大模型:Qwen-VL 技术报告解读
  • 给公司建立网站不可以做到的是素材下载网站开发文档
  • wordpress网站类型长春网页设计培训
  • 半精度浮点在AI推理中的应用:C++23新类型与性能测试