Sev*_*ess 14 unix version-control matlab symlink
所以,我喜欢我的Macbook,她爱我.我们有起伏,但在大多数情况下,我们的关系一直很强大.最近虽然我们打架了.它开始时就足够了.我曾要求她做更多,试图更具实验性.我们带来了诸如sse,快速数学和展开到卧室之类的东西,并编译了我们库的新版本.
它开始时很好.我们使用新库编译一些代码,测试新的水域.随着时间的推移,我们的表现随着夫妻飙升 她工作得更快,我认为一切都很好.然后事情变得更糟.我们带来了另一名球员.她的名字是Matlab.
我们开始为Matlab编译,
mex CC="gcc" CFLAGS="\$CFLAGS -msse -msse2 -msse3 -ffast-math -ftree-vectorize" LDFLAGS="\$LDFLAGS -msse2 -msse3 -ffast-math -ftree-vectorize" -I/usr/local/include -L/usr/local/lib -lsundials_cvode -lsundials_nvecserial -v -o kry_new.mexmaci64 mex_main.c
Run Code Online (Sandbox Code Playgroud)
编译和链接工作得很好.但后来麻烦开始了:
kry_new(param,init,0:60:240,abstol,rtol,1)
??? Invalid MEX-file
'/Users/Andrew/Documents/MATLAB/het_optim/kry_new.mexmaci64':
dlopen(/Users/Andrew/Documents/MATLAB/het_optim/kry_new.mexmaci64, 1):
Library not loaded: /usr/local/lib/libsundials_cvode.1.dylib
Referenced from: /Users/Andrew/Documents/MATLAB/het_optim/kry_new.mexmaci64
Reason: Incompatible library version: kry_new.mexmaci64 requires version
2.0.0 or later, but libsundials_cvode.1.dylib provides version 1.0.0.
Run Code Online (Sandbox Code Playgroud)
Matlab觉得我们的实验已经走到了尽头.它们是完全不同的库版本.我不知道她在哪里得到这个想法.我做了一些调查:
$ otool -L kry_new.mexmaci64
kry_new.mexmaci64:
/usr/local/lib/libsundials_cvode.1.dylib (compatibility version 2.0.0, current version 2.0.0)
@loader_path/libsundials_nvecserial.0.0.2.dylib (compatibility version 0.0.0, current version 0.0.2)
@loader_path/libmx.dylib (compatibility version 0.0.0, current version 0.0.0)
@loader_path/libmex.dylib (compatibility version 0.0.0, current version 0.0.0)
@loader_path/libmat.dylib (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
Run Code Online (Sandbox Code Playgroud)
问题出在libsundials_cvode中.没有版本2,从来没有.更糟糕的是,我的Macbook采用了Matlab的一面.我尝试卸载,删除所有对新事物的引用,甚至删除了我们的make文件并尝试重新开始.我试图用旧的方式重建我们的库.但他们不会放弃难以捉摸的版本2.我不知道如何给他们想要的东西.我只是不够满足他们对我的期望.
我唯一可以猜到的是,在某些时候,版本2是有道理的,但我以某种方式退出了它.我想我所提出的链接仍然存在于他们的脑海中,即使我回到原来的样子.我想我忘记了鸟类和蜜蜂的第一条规则谈话由我的系统管理员,因为"每一次你symbolink一个动态库时间,你给自己的部分远,你永远不会回来了."
绝望地将我的Macbook和Matlab放在我的生活中,我说谎,我并不为此感到骄傲:
sudo mv libsundials_cvode.1.0.0.dylib libsundials_cvode.2.0.0.dylib
Run Code Online (Sandbox Code Playgroud)
我认为它不会起作用,但确实如此.他们现在编译我的代码,他们看起来很开心.但我有一种挥之不去的感觉,我只是假装它,我的谎言会回来咬我.
所以,既然Dan Savage只是忽略了我,我会转向你的stackoverflow来获取关系建议.我需要以某种方式告诉我的Macbook,不,版本1.0.0对我们来说已经足够了.如果没有我可怕的谎言,我怎样才能让她听我的话并解决我的关系中的兼容性问题?
抱歉,如果我找错了树,但据我所知,Sundials 的版本是 2.4(各个库的版本是 2.6)?https://computation.llnl.gov/casc/sundials/download/download.html。您是否尝试过从这里的源代码进行编译?
我刚刚在运行 10.6.7 的 Mac Pro 上编译并安装,没有任何问题!您需要使用以下配置才能安装 .dylib,否则它只会生成 .la 和 .a
./configure --enable-shared
Run Code Online (Sandbox Code Playgroud)
我现在有以下内容:
w125-244:sundials-2.4.0 stevemoss$ ls -al /usr/local/lib/libsundials_cvode*
-rwxr-xr-x 1 root staff 4136 28 Apr 16:07 /usr/local/lib/libsundials_cvode.1.0.0.dylib
lrwxr-xr-x 1 root staff 29 28 Apr 16:07 /usr/local/lib/libsundials_cvode.1.dylib -> libsundials_cvode.1.0.0.dylib
-rw-r--r-- 1 root staff 512704 28 Apr 16:07 /usr/local/lib/libsundials_cvode.a
lrwxr-xr-x 1 root staff 29 28 Apr 16:07 /usr/local/lib/libsundials_cvode.dylib -> libsundials_cvode.1.0.0.dylib
-rwxr-xr-x 1 root staff 878 28 Apr 16:07 /usr/local/lib/libsundials_cvode.la
-rwxr-xr-x 1 root staff 4136 28 Apr 16:07 /usr/local/lib/libsundials_cvodes.2.0.0.dylib
lrwxr-xr-x 1 root staff 30 28 Apr 16:07 /usr/local/lib/libsundials_cvodes.2.dylib -> libsundials_cvodes.2.0.0.dylib
-rw-r--r-- 1 root staff 926048 28 Apr 16:07 /usr/local/lib/libsundials_cvodes.a
lrwxr-xr-x 1 root staff 30 28 Apr 16:07 /usr/local/lib/libsundials_cvodes.dylib -> libsundials_cvodes.2.0.0.dylib
-rwxr-xr-x 1 root staff 885 28 Apr 16:07 /usr/local/lib/libsundials_cvodes.la
Run Code Online (Sandbox Code Playgroud)
和
w125-244:sundials-2.4.0 stevemoss$ otool -L /usr/local/lib/libsundials_cvode.dylib
/usr/local/lib/libsundials_cvode.dylib:
/usr/local/lib/libsundials_cvode.1.dylib (compatibility version 2.0.0, current version 2.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.10)
Run Code Online (Sandbox Code Playgroud)
另外,在您的示例中,符号链接可能比 mv 更好?
| 归档时间: |
|
| 查看次数: |
593 次 |
| 最近记录: |