V2EX alphaprogrammer 的所有回复 第 1 页 / 共 2 页
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX    alphaprogrammer    全部回复第 1 页 / 共 2 页
回复总数  29
1  2  
说一下情况,就是原本写的代码时基于 x86 的,现在需要在 arm 上跑,依赖于一些第三方库(在目标机上可以直接 apt 安装)。目前由于没有 arm 环境,只能在 x86 上使用交叉编译的方式编译出 arm 可执行程序,第三方库依赖采用 dlopen 的方式去除依赖。(如果能下载 arm 版的第三方库 binary,也可以直接编译的)

目前我的实现方式有点取巧,个人感觉实现方式不太好。

首先,之前实现的代码都定义在一个 namespace A 下,
假定依赖一个 func_b,其类型为 type_func_b, 在 namespace A 下定义一个 type_func_b 的变量 func_b,变量名与函数名相同,通过__attribute__(constructor)初始化 func_b 变量,指向第三方库中的函数符号。

这样以前的代码基本不需要改,只需要根据编译 include 一个头文件即可。
有一个缺点就是必须定义在同一个 namespace 下,否则变量 func_b 会与第三方库中的函数声明冲突
@ysc3839 -_-!! 对 window 不了解,没接触过。
2020-02-24 12:38:14 +08:00
span class="gray">回复了 alphaprogrammer 创建的主题 C++ C/C++ 编译器如何在缺乏依赖库(只有头文件)的情况下正确编译?
@hitmanx 目前在这方面尝试,dlopen 之类的壳代码不知道有没有什么方法能自动生成的
@augustheart 版本确实是一个问题,但是动态链接一样会碰到版本问题,这个是 code 应该做兼容处理的
@SPACELAN 依赖库不由我提供, 直接从特定源下载即可
@ai277014717 gcc/g++ 有这个编译选项吗?
@chinuno 这个思路不错,之前的代码可以原封不动,不用改
@littlewing 这个我知道,现在就是需要编译可执行文件
@hitmanx 目前是在这方面想,但是我希望是 动态链接的方式和 dlopen 的方式能随意切换
@fcten 但是 gcc/g++ 在链接阶段会查找可执行程序引用到的所有函数,如果找不到会报错的吧
@shylockhg 因为本地没有编译平台,只有一个交叉编译器
2020-01-13 19:15:44 +08:00
回复了 cl903254852 创建的主题 健康 有做过鼻炎手术的吗?我打算年后做,受不了了
麻黄碱类药物 不要长期用, 只能偶尔用一两次
2019-11-27 19:21:31 +08:00
回复了 imiao 创建的主题 C++ 请教 C++多线程操作 deque 遇到的一个问题
使用无锁 ringbuffer,buffer 内部存取指针,便于原子操作
2019-11-17 12:38:55 +08:00
回复了 anonymous256 创建的主题 程序员 招个人真难
就想知道这个要求开多少工资,看看自己值什么价
2019-10-20 13:01:28 +08:00
回复了 alphaprogrammer 创建的主题 程序员 需不需要用 vim 搭建开发环境来替换 IDE?
@uhayate 我现在也只会一点简单的 vi 命令,用于特殊时刻。
2019-10-20 11:57:45 +08:00
回复了 alphaprogrammer 创建的主题 程序员 需不需要用 vim 搭建开发环境来替换 IDE?
@jworg 主要是 sourceinsight 只有 window 版本, 需要开个虚拟机,有点麻烦
2019-10-20 11:54:16 +08:00
回复了 alphaprogrammer 创建的主题 程序员 需不需要用 vim 搭建开发环境来替换 IDE?
@zwpaper 我去了解下
2019-10-20 11:53:55 +08:00
回复了 alphaprogrammer 创建的主题 程序员 需不需要用 vim 搭建开发环境来替换 IDE?
@ericgui 我也觉得把时间折腾在 vim 上是不是不划算
1  2  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5295 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 19ms UTC 06:49 PVG 14:49 LAX 22:49 JFK 01:49
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86