小菜弱弱的问一句:在Linux下有C++的用武之地吗?
时间:2010-10-13
来源:互联网
本人在 CLAPACK-3.2.1 目录下直接 make,没有错误输出,且生成了 lapack_LINUX.a,blas_LINUX.a,tmglib_LINUX.a 和 F2CLIBS/libf2c.a 四个 *.a 文件。然后我进行了如下操作:
cp lapack_LINUX.a liblapack_LINUX.a
cp blas_LINUX.a libblas_LINUX.a
ranlib libblas_LINUX.a
ranlib liblapack_LINUX.a
cd F2CLIBS/
cp libf2c.a liblibf2c.a
ranlib liblibf2c.a
cp liblibf2c.a ../
最后我将 http://www.netlib.org/clapack/faq.html#1.5 给出的例子程序存为test.c且置于CLAPACK-3.2.1 目录下,然后用以下命令编译连接:
gcc -Wall -o test test.c -L. -I./INCLUDE/ -lblas_LINUX -llapack_LINUX -llibf2c -lm
此时得到了不少错误报告,部分如下:
./liblapack_LINUX.a(dgesvd.o): In function `dgesvd_':
dgesvd.c:(.text+0x3cf8): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x40f7): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x5327): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x57d0): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x6ab2): undefined reference to `f2c_dgemm'
./liblapack_LINUX.a(dgesvd.o):dgesvd.c:(.text+0x6df9): more undefined references to `f2c_dgemm' follow
./liblapack_LINUX.a(dbdsqr.o): In function `dbdsqr_':
dbdsqr.c:(.text+0x66c): undefined reference to `f2c_dscal'
dbdsqr.c:(.text+0x762): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0x7b6): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0x800): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0xdab): undefined reference to `f2c_drot'
dbdsqr.c:(.text+0xe13): undefined reference to `f2c_drot'
dbdsqr.c:(.text+0xe75): undefined reference to `f2c_drot'
./liblapack_LINUX.a(dlasq1.o): In function `dlasq1_':
dlasq1.c:(.text+0x1ec): undefined reference to `f2c_dcopy'
dlasq1.c:(.text+0x220): undefined reference to `f2c_dcopy'
./liblapack_LINUX.a(dgebrd.o): In function `dgebrd_':
dgebrd.c:(.text+0x403): undefined reference to `f2c_dgemm'
这似乎是因为未成功连接libf2c库造成的,但我在gcc命令中确实包含了啊,即-llibf2c。这是为什么呢?大家有什么想法吗?
另外,gcc命令中写库的顺序还有讲究呢?把 -llibf2c 往前挪似乎有更多的错误提示啊。
dehiker
cp lapack_LINUX.a liblapack_LINUX.a
cp blas_LINUX.a libblas_LINUX.a
ranlib libblas_LINUX.a
ranlib liblapack_LINUX.a
cd F2CLIBS/
cp libf2c.a liblibf2c.a
ranlib liblibf2c.a
cp liblibf2c.a ../
最后我将 http://www.netlib.org/clapack/faq.html#1.5 给出的例子程序存为test.c且置于CLAPACK-3.2.1 目录下,然后用以下命令编译连接:
gcc -Wall -o test test.c -L. -I./INCLUDE/ -lblas_LINUX -llapack_LINUX -llibf2c -lm
此时得到了不少错误报告,部分如下:
./liblapack_LINUX.a(dgesvd.o): In function `dgesvd_':
dgesvd.c:(.text+0x3cf8): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x40f7): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x5327): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x57d0): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x6ab2): undefined reference to `f2c_dgemm'
./liblapack_LINUX.a(dgesvd.o):dgesvd.c:(.text+0x6df9): more undefined references to `f2c_dgemm' follow
./liblapack_LINUX.a(dbdsqr.o): In function `dbdsqr_':
dbdsqr.c:(.text+0x66c): undefined reference to `f2c_dscal'
dbdsqr.c:(.text+0x762): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0x7b6): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0x800): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0xdab): undefined reference to `f2c_drot'
dbdsqr.c:(.text+0xe13): undefined reference to `f2c_drot'
dbdsqr.c:(.text+0xe75): undefined reference to `f2c_drot'
./liblapack_LINUX.a(dlasq1.o): In function `dlasq1_':
dlasq1.c:(.text+0x1ec): undefined reference to `f2c_dcopy'
dlasq1.c:(.text+0x220): undefined reference to `f2c_dcopy'
./liblapack_LINUX.a(dgebrd.o): In function `dgebrd_':
dgebrd.c:(.text+0x403): undefined reference to `f2c_dgemm'
这似乎是因为未成功连接libf2c库造成的,但我在gcc命令中确实包含了啊,即-llibf2c。这是为什么呢?大家有什么想法吗?
另外,gcc命令中写库的顺序还有讲究呢?把 -llibf2c 往前挪似乎有更多的错误提示啊。
dehiker
作者: dehiker 发布时间: 2010-10-13
本人在 CLAPACK-3.2.1 目录下直接 make,没有错误输出,且生成了 lapack_LINUX.a,blas_LINUX.a,tmglib_LINUX.a 和 F2CLIBS/libf2c.a 四个 *.a 文件。然后我进行了如下操作:
cp lapack_LINUX.a liblapack_LINUX.a
cp blas_LINUX.a libblas_LINUX.a
ranlib libblas_LINUX.a
ranlib liblapack_LINUX.a
cd F2CLIBS/
cp libf2c.a liblibf2c.a
ranlib liblibf2c.a
cp liblibf2c.a ../
最后我将 http://www.netlib.org/clapack/faq.html#1.5 给出的例子程序存为test.c且置于CLAPACK-3.2.1 目录下,然后用以下命令编译连接:
gcc -Wall -o test test.c -L. -I./INCLUDE/ -lblas_LINUX -llapack_LINUX -llibf2c -lm
此时得到了不少错误报告,部分如下:
./liblapack_LINUX.a(dgesvd.o): In function `dgesvd_':
dgesvd.c:(.text+0x3cf8): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x40f7): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x5327): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x57d0): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x6ab2): undefined reference to `f2c_dgemm'
./liblapack_LINUX.a(dgesvd.o):dgesvd.c:(.text+0x6df9): more undefined references to `f2c_dgemm' follow
./liblapack_LINUX.a(dbdsqr.o): In function `dbdsqr_':
dbdsqr.c:(.text+0x66c): undefined reference to `f2c_dscal'
dbdsqr.c:(.text+0x762): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0x7b6): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0x800): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0xdab): undefined reference to `f2c_drot'
dbdsqr.c:(.text+0xe13): undefined reference to `f2c_drot'
dbdsqr.c:(.text+0xe75): undefined reference to `f2c_drot'
./liblapack_LINUX.a(dlasq1.o): In function `dlasq1_':
dlasq1.c:(.text+0x1ec): undefined reference to `f2c_dcopy'
dlasq1.c:(.text+0x220): undefined reference to `f2c_dcopy'
./liblapack_LINUX.a(dgebrd.o): In function `dgebrd_':
dgebrd.c:(.text+0x403): undefined reference to `f2c_dgemm'
这似乎是因为未成功连接libf2c库造成的,但我在gcc命令中确实包含了啊,即-llibf2c。这是为什么呢?大家有什么想法吗?
另外,gcc命令中写库的顺序还有讲究呢?把 -llibf2c 往前挪似乎有更多的错误提示啊。
dehiker
cp lapack_LINUX.a liblapack_LINUX.a
cp blas_LINUX.a libblas_LINUX.a
ranlib libblas_LINUX.a
ranlib liblapack_LINUX.a
cd F2CLIBS/
cp libf2c.a liblibf2c.a
ranlib liblibf2c.a
cp liblibf2c.a ../
最后我将 http://www.netlib.org/clapack/faq.html#1.5 给出的例子程序存为test.c且置于CLAPACK-3.2.1 目录下,然后用以下命令编译连接:
gcc -Wall -o test test.c -L. -I./INCLUDE/ -lblas_LINUX -llapack_LINUX -llibf2c -lm
此时得到了不少错误报告,部分如下:
./liblapack_LINUX.a(dgesvd.o): In function `dgesvd_':
dgesvd.c:(.text+0x3cf8): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x40f7): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x5327): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x57d0): undefined reference to `f2c_dgemm'
dgesvd.c:(.text+0x6ab2): undefined reference to `f2c_dgemm'
./liblapack_LINUX.a(dgesvd.o):dgesvd.c:(.text+0x6df9): more undefined references to `f2c_dgemm' follow
./liblapack_LINUX.a(dbdsqr.o): In function `dbdsqr_':
dbdsqr.c:(.text+0x66c): undefined reference to `f2c_dscal'
dbdsqr.c:(.text+0x762): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0x7b6): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0x800): undefined reference to `f2c_dswap'
dbdsqr.c:(.text+0xdab): undefined reference to `f2c_drot'
dbdsqr.c:(.text+0xe13): undefined reference to `f2c_drot'
dbdsqr.c:(.text+0xe75): undefined reference to `f2c_drot'
./liblapack_LINUX.a(dlasq1.o): In function `dlasq1_':
dlasq1.c:(.text+0x1ec): undefined reference to `f2c_dcopy'
dlasq1.c:(.text+0x220): undefined reference to `f2c_dcopy'
./liblapack_LINUX.a(dgebrd.o): In function `dgebrd_':
dgebrd.c:(.text+0x403): undefined reference to `f2c_dgemm'
这似乎是因为未成功连接libf2c库造成的,但我在gcc命令中确实包含了啊,即-llibf2c。这是为什么呢?大家有什么想法吗?
另外,gcc命令中写库的顺序还有讲究呢?把 -llibf2c 往前挪似乎有更多的错误提示啊。
dehiker
作者: dehiker 发布时间: 2010-10-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28