社区
工具平台和程序库
帖子详情
关于平台切换编译的问题
lionelmessiCODE
2018-03-13 04:57:15
本人在VS平台下用C#调用Matlab文件,除此之外还有C++DLL;机器平台是X64;将所有平台切换到64位进行编译时,之前的C++导入的dll函数全部变为无法解析外部符号,尝试按照网上教程将lib;H;以及dll添加依赖项,但是还是无法通过编译;将平台切换到Win32就没有这种情况了;
现在不知道该怎么解决这个问题,头疼
...全文
323
3
打赏
收藏
关于平台切换编译的问题
本人在VS平台下用C#调用Matlab文件,除此之外还有C++DLL;机器平台是X64;将所有平台切换到64位进行编译时,之前的C++导入的dll函数全部变为无法解析外部符号,尝试按照网上教程将lib;H;以及dll添加依赖项,但是还是无法通过编译;将平台切换到Win32就没有这种情况了; 现在不知道该怎么解决这个问题,头疼
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
赵4老师
2018-03-14
打赏
举报
回复
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。 比如: A将请求数据写到文件a.txt,写完后改名为aa.txt B发现aa.txt存在时,读取其内容,调用相应功能,将结果写到文件b.txt,写完后删除aa.txt,再将b.txt改名为bb.txt A发现bb.txt存在时,读取其内容,读完后删除bb.txt 以上A可以替换为任何一种开发语言或开发环境,B可以替换为任何一种与A不同的开发语言或开发环境。 除非A或B不支持判断文件是否存在、文件读写和文件更名。 但是谁又能举出不支持判断文件是否存在、文件读写和文件更名的开发语言或开发环境呢? 可以将临时文件放在RamDisk上提高效率减少磨损磁盘。 数据的结构很复杂的话,文本文件的格式问题可参考json或xml 共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的: ·进程之间松耦合 ·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。 ·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。 ·方便在线开关服务,只需删除或创建该临时文本文件即可。 ·方便实现分布式和负载均衡。 ·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满) ·…… “跨语言、跨机,跨操作系统,跨硬件平台,跨国,跨*.*的”苦海无边, 回头是“使用共享纯文本文件进行信息交流”的岸! 请自行将以上A语言替换为32位程序,B语言替换为64位程序。
mstlq
2018-03-13
打赏
举报
回复
在64位的windows系统中,一个64位进程不能加载一个32位dll,同理一个32位进程也不能加载一个64位dll。也就是说64bit的操作系统需要注意一个对应关系,64bit的EXE对应64bitDLL,32bit的EXE对应32bit的DLL。 如果你使用VS编写的应用程序,使用的是win32平台则意味着你的应用程序是32位的,则该应用程序在调用dll时应该使用的32位dll。如果你的应用程序使用的是x64平台则该应用程序是64位程序,应该调用的是64DLL. 非要折腾64位进程使用32位dll中提供的内容的话,参考下面的....
https://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/
http://blog.csdn.net/CNHK1225/article/details/53884710
需要进程间通信和对COM有一定了解 非常麻烦,不建议楼主尝试,直接编成32位版本不是挺好吗?
zhangyiant
2018-03-13
打赏
举报
回复
你的lib,dll是32位的吧。
QT+OSG/osgEarth跨
平台
编译
目前我们进入了国产信创的时代,所以,要保障软件在不同的
平台
上运行。尤其是国产化的
平台
上。... 因此,我们完成了第三方库、OSG、osgEarth的跨
平台
编译
,那么后续就可以方便地开展业务
平台
的跨
平台
编译
与部署。
Visual Studio 2008
编译
多
平台
切换
时出现的
编译
问题
解决记录
在工程解决方案中使用多
平台
时,会有些意想不到的
问题
发生,今天我就遇到了两个
问题
,一个是
编译
时资源重复定义的
问题
,另一个是预
编译
头文件的
问题
。 第一 资源重复定义
问题
我的一个工程需要支持一个新的
平台
,我直接选择了这个
平台
,但是,我的一些配置是从另外的之前的
平台
复制过来的,可能是一些原因,导致好一些选项在这两个
平台
之间有些差异。
编译
时,出现如下错误提示: 1>CVTRES : fata
如何使用makefile
编译
不同
平台
的目标文件(makefile的参数传递)
最近在研究一个嵌入式开发项目,在编写实际的项目代码时,需要临时写一些测试代码对部分功能进行预测试。编写的这些代码,有时候需要在PC机(x86)的
平台
上运行,有时候则需要在A嵌入式
平台
(arm端)i.mx6的
平台
上运行,而还有时候则需要在B嵌入式
平台
(arm端)mini2440的
平台
上运行,需要能随时进行
切换
,
编译
出对应
平台
所需要的可执行文件。
rust包跨
平台
编译
,macbook ,linux
编译
完成后,您可以根据您的需要生成 Linux 包。- 如果您希望生成 `dpkg` 包(.deb 文件),您可以使用工具如 `cargo-deb` 来将二进制文件打包并生成 `.deb` 包。- 安装交叉
编译
工具链:为了将 Rust 项目
编译
为 Linux
平台
的二进制文件,您需要安装适当的交叉
编译
工具链。- 安装 `cross` 工具:`cross` 是一个方便的工具,用于简化交叉
编译
过程。- 如果您希望生成 `rpm` 包,您可以使用工具如 `cargo-rpm`。1. **安装所需工具:**
基于x86_64
平台
交叉
编译
aarm64
平台
的驱动模块
交叉
编译
保姆级教学1.什么是交叉
编译
2.为什么需要交叉
编译
3.怎么进行交叉
编译
2.1 开始前准备2.1.1 背景介绍:2.1.2 开始前的准备:
编译
kernel
编译
phy driver生成可加载的ko文件 1.什么是交叉
编译
在一种计算机环境中运行的
编译
程序,能
编译
出在另外一种环境下运行的代码,我们就称这种
编译
器支持交叉
编译
。这个
编译
过程就叫交叉
编译
。 2.为什么需要交叉
编译
主要原因是:嵌入式系统中的资源太少 具体的解释就是:交叉
编译
出来的程序,所要运行的目标环境中,各种资源,都相对有限,所以很难进行直接
工具平台和程序库
24,854
社区成员
27,343
社区内容
发帖
与我相关
我的任务
工具平台和程序库
C/C++ 工具平台和程序库
复制链接
扫一扫
分享
社区描述
C/C++ 工具平台和程序库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章