程序是一个动态库(用 Qt 静态编译出来的版本,所以比较大),编译出来有四个文件。
-rwxr-xr-x 1 myCode staff 18M 8 17 10:41 libScreenshot.1.0.0.dylib
lrwxr-xr-x 1 myCode staff 25B 8 17 10:41 libScreenshot.1.0.dylib -> libScreenshot.1.0.0.dylib
lrwxr-xr-x 1 myCode staff 25B 8 17 10:41 libScreenshot.1.dylib -> libScreenshot.1.0.0.dylib
lrwxr-xr-x 1 myCode staff 25B 8 17 10:41 libScreenshot.dylib -> libScreenshot.1.0.0.dylib
核心文件是 libScreenshot.1.0.0.dylib 其他都是它的链接文件。为了方便调用?那么问题来了。程序中直接 QLibrary library("libScreenshot"); 是失败的,因为找不到文件。
如果写死绝对路径是可以调用的。但是如果库提供给其他人使用呢?是不是要做一个什么脚本什么的把文件复制到系统某个目录而不需要指定绝对路径来让程序调用?
我试了手动 cp *.dylib 文件到 /usr/lib 是拒绝访问的,哪怕加了 sudo,查了下资料是要关闭 SIP 的,明显不是正确姿势:
sudo cp *.dylib /usr/lib
Password:
cp: /usr/lib/libScreenshot.1.0.0.dylib: Operation not permitted
cp: /usr/lib/libScreenshot.1.0.dylib: Operation not permitted
cp: /usr/lib/libScreenshot.1.dylib: Operation not permitted
cp: /usr/lib/libScreenshot.dylib: Operation not permitted
所以来这里请教大家,正确的发布姿势应该是怎样的?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.