g++编译器中的「-Wl,--kill-at」用法,解决JNI中的UnsatisfiedLinkError

在将cpp打包成dll动态链接库时 你可以使用以下命令 ``` g++ -shared -o test.dll test.cpp ``` 但是有时候你会发现编译成的dll根本无法被调用 因为这样编译g++有可能会 **「自作主张」** 将你cpp中的函数名 **优化** 如果你使用了C++的「多态」,即函数名相同,参数不同的特性 那g++会百分之一百会使用函数名优化机制,修改你的函数名的 而如果你使用JNI,函数名都类似 ``` JNIEXPORT jint JNICALL Java_com_saiyang_newflypig_rwt_cnc_CNCHelper_readToolNos (JNIEnv* env, jclass); ``` 这么大一坨时,g++也会 **好心** 帮你优化优化函数名 (帮你加个‘@’之类的无意义符号,根本不知道这是什么目的) 一旦函数名称被优化成其他名称,你的dll是说什么也不会成功被调用的 这时候我们在编译dll时,应该加上`-Wl,--kill-at`参数,杀掉‘@’,并取消警告 很可惜,百度这个参数,搜到有用的结果寥寥无几 只有几篇有价值的文章介绍了这个参数,并且还都是跟JNI有关的 比如 https://dikar.iteye.com/blog/382701

轻量级屏幕录制工具LICEcap,轻松制作GIF

[**LICEcap**](https://www.cockos.com/licecap) 是一款轻巧的屏幕录制并制作GIF的小工具 它轻巧到安装文件只有 **228KB** 大小 录制10秒的GIF小视频只有 **148KB** 大小 录制1分钟的GIF视频只有 **1.8M** 大小 如果你是独立博客作者,尤其是写计算机方向的博客的话 想必很多地方需要借助屏幕录制来讲解操作方法 这款软件相当适用 下面是一个只有 140KB 大小的测试GIF ![](https://files.hexcode.cn/35a79756-7fc2-4805-9a46-edc38855e900.gif)

Chrome浏览器kiosk模式下,退出的方法

Chrome浏览器的kiosk模式真乃神器 可以方便的开发基于HTML5的展示型全屏系统 一般人根本不知道是运行的HTML应用 该模式下,只有按Alt+F4或者Ctrl+W才能退出应用 但对于触摸屏(无键盘)场景下有些困难 这就要求在HTML中加上关闭功能 令人吃惊的是`javascript:window.close()`在kiosk模式下居然也不起作用 经过百般搜索,终于发现了一个chrome插件可以解决此问题 [Close Kiosk 插件地址](https://chrome.google.com/webstore/detail/close-kiosk/dfbjahmenldfpkokepmfmkjkhdjelmkb) 现在Chrome插件必须Store上在线安装 如果你的展柜机台没有网络环境 又或者Chrome Stroe上哪一天这个插件下架了 又或者哪天翻不了墙了就糟糕了 百度搜索「[Chrome 插件导出](https://jingyan.baidu.com/article/9158e0004ff9bba25512284d.html)」 将其导出为CRX文件,再到其他电脑上,打开chrome拖入即可,我这边备份了一个,可供下载 [下载地址](https://files.hexcode.cn/c92adb65-359b-4499-9ba4-f6a0bd4af652.crx) 安装到Chrome以后,在HTML中只要打开的URL包含closekiosk字符串,这个插件就能将Chrome关闭,达到退出的效果。

丁丁生于 1987.07.01 ,30岁,英文ID:newflydd

  • 现居住地 江苏 ● 泰州 ● 姜堰
  • 创建了 Jblog 开源博客系统
  • 坚持十余年的 独立博客 作者
  • 大学本科毕业后就职于 中国电信江苏泰州分公司,前两年从事Oracle数据库DBA工作,两年后公司精简技术人员,被安排到农村担任支局长(其本质是搞销售),于2016年因志向不合从国企辞职,在小城镇找了一份程序员的工作。
  • Git OSChina 上积极参与开源社区