f******y 发帖数: 2971 | 1 【 以下文字转载自 Statistics 讨论区 】
发信人: finalguy (o(∩∩)o), 信区: Statistics
标 题: Problem with R loading C libraries
发信站: BBS 未名空间站 (Tue Nov 29 14:10:46 2011, 美东)
I got problem when trying to load gsl library:
dyn.load("/usr/local/lib/libgsl.so")
Error in dyn.load("/usr/local/lib/libgsl.so") :
unable to load shared object '/usr/local/lib/libgsl.so':
/usr/local/lib/libgsl.so: undefined symbol: cblas_ctrmv
I know what the msg means, but how to fix it? |
|
f******y 发帖数: 2971 | 2 I got problem when trying to load gsl library:
dyn.load("/usr/local/lib/libgsl.so")
Error in dyn.load("/usr/local/lib/libgsl.so") :
unable to load shared object '/usr/local/lib/libgsl.so':
/usr/local/lib/libgsl.so: undefined symbol: cblas_ctrmv
I know what the msg means, but how to fix it? |
|
l*********i 发帖数: 483 | 3 在Linux底下的一个数值计算的C++ code,Makefile是由autoconf生成的,
如果我想要生成一个完全不用动态库的可执行文件,应该给./configure加
什么参数呢?印象里如果是自己手动写的Makefile的话,只要加上-static
这个参数就可以了,但是不知道用autoconf的时候应该怎么弄。我试着用
"./configure --disable-shared --enable-static",但是用ldd看身成的
可执行文件,还是输出如下的结果:
$ ldd simple-snr
libgsl.so.0 => /usr/lib/libgsl.so.0 (0x00002b5d36624000)
libgslcblas.so.0 => /usr/lib/libgslcblas.so.0 (0x00002b5d36a0b000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00002b5d36c3b000)
libm.so.6 => /lib/libm |
|
b**a 发帖数: 1375 | 4 要使用GSL的计算库
把libgsl.dll放在了对应的目录下.
如下程序
typedef double (*pgsl_cdf_gamma_Pinv)(const double P, const double a
, const double b);
HINSTANCE hDLL;
hDLL=LoadLibraryW((LPCWSTR)"libgsl.dll");
if(hDLL==NULL){
cout<<"dll not found";
return 0;
}
pgsl_cdf_gamma_Pinv GammaInv;
GammaInv=(pgsl_cdf_gamma_Pinv)GetProcAddress(hDLL,"gsl_cdf_gamma_
Pinv");
cout<
总是提示找不到dll,
请大牛指教, 拜谢了. |
|
d****n 发帖数: 1637 | 5 BUILD GSL LIBRARIES FOR Visual studio
1. Launch Visual C++ Studio
2. Open project C:\downloads\gsl-1.8-src\src\gsl\1.8\gsl-1.8\VC8\libgsl.sln
3. Continue with convert, and do a build all
4.Verify that after build is complete, new dll files are generated in
subfolders in
C:\downloads\gsl-1.8-src\src\gsl\1.8\gsl-1.8\VC8\libgsl\Debug-DLL
and
C:\downloads\gsl-1.8-src\src\gsl\1.8\gsl-1.8\VC8\libgslcblas\Debug-DLL
....
more at:
http://www.quantcode.com/modules/smartfaq/faq.php?faqid=94 |
|
l*********i 发帖数: 483 | 6 【 以下文字转载自 Programming 讨论区 】
发信人: lamborghini (隐形汽车Reventon), 信区: Programming
标 题: 问个autoconf的问题
发信站: BBS 未名空间站 (Mon Feb 25 06:33:56 2008), 转信
在Linux底下的一个数值计算的C++ code,Makefile是由autoconf生成的,
如果我想要生成一个完全不用动态库的可执行文件,应该给./configure加
什么参数呢?印象里如果是自己手动写的Makefile的话,只要加上-static
这个参数就可以了,但是不知道用autoconf的时候应该怎么弄。我试着用
"./configure --disable-shared --enable-static",但是用ldd看身成的
可执行文件,还是输出如下的结果:
$ ldd simple-snr
libgsl.so.0 => /usr/lib/libgsl.so.0 (0x00002b5d36624000)
libgslcblas.so.0 => /usr/ |
|
k****f 发帖数: 3794 | 7 看看你的libgsl.a或者其他类似的库在哪儿?
block |
|
t****t 发帖数: 6806 | 8 很难弄的, 你要让gcc能看到gsl的include file, 还要让gcc/ld能看到gsl的library
file
你找你装好的gsl, .h文件在什么地方? 比如说有/home/me/GSL/include/gsl/gsl_blas
.h
那你可以试试
CPPFLAGS=-I/home/me/GSL/include
你装好的gsl, .a或者.so在什么地方? 比如有/home/me/GSL/lib/libgsl.a, 你可以试试
LIBS=-L/home/me/GSL/lib
所以你可以写
env CPPFLAGS=-I/home/me/GSL LIBS=-L/home/me/GSL/lib make
但是这都不一定有用, 取决于这个作者的makefile是怎么写的
所以我说一两句话说不清楚, 基本上要看到你的机器才行, 我也没用过gsl, 只是对
UNIX熟一点 |
|
c****e 发帖数: 1453 | 9 It's possible this was caused by dll dependency, which means libgsl.dll
needs other dlls to be loaded, so the loading failed and returned NULL. |
|
D*******a 发帖数: 3688 | 10 用lib.exe从libgsl.def和libgslcblas.def产生.lib文件
在vs2005的project properties加入include path和external dependencies(.lib) |
|
s*******d 发帖数: 1027 | 11 关键是哪两个libgsl.lib, libgslcblas.lib, 我没法生成了。 原文件里面也没有。。 |
|