计算化学公社

 找回密码 Forget password
 注册 Register
Views: 8132|回复 Reply: 7
打印 Print 上一主题 Last thread 下一主题 Next thread

[综合交流] 这个libint报错该怎么解决?

[复制链接 Copy URL]

370

帖子

7

威望

3497

eV
积分
4007

Level 6 (一方通行)

本帖最后由 Freeman 于 2021-8-4 13:04 编辑

从github上下载好libint-2.5.0.tgz后,解压,configure,make,make install都完成了,并在.bashrc里添加了
  1. export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/libint/2.5.0/include
复制代码
写一个简单的C++代码:
  1. #include <libint2.hpp>
  2. //using namespace libint2;
  3. int main(){
  4.     //initialize();
  5.     //finalize();
  6. }
复制代码
运行,报错:
  1. /tmp/ccdkPong.o:在函数‘libint2::detail::__initializer::~__initializer()’中:
  2. f**k.cpp:(.text._ZN7libint26detail13__initializerD2Ev[_ZN7libint26detail13__initializerD5Ev]+0xd):对‘libint2_static_cleanup’未定义的引用
复制代码
请问大家有知道这是啥情况的吗?

本来用最新的2.6.0版本,遇到了这个问题。官网上说,从2.6.0开始就不建议使用GNU make,而要用cmake了。我还以为是新版本不能用make而导致的编译错误,但是换了2.5.0再试了一遍,发现是同样的报错。

313

帖子

2

威望

3900

eV
积分
4253

Level 6 (一方通行)

2#
发表于 Post on 2021-8-4 13:38:29 | 只看该作者 Only view this author
弱弱的问一句,你是不是没有添加链接选项-lint2

370

帖子

7

威望

3497

eV
积分
4007

Level 6 (一方通行)

3#
 楼主 Author| 发表于 Post on 2021-8-4 13:46:58 | 只看该作者 Only view this author
lyj714 发表于 2021-8-4 13:38
弱弱的问一句,你是不是没有添加链接选项-lint2

没有,那是啥啊?

313

帖子

2

威望

3900

eV
积分
4253

Level 6 (一方通行)

4#
发表于 Post on 2021-8-4 13:49:26 | 只看该作者 Only view this author
Freeman 发表于 2021-8-4 13:46
没有,那是啥啊?

c/c++你链接到外部库肯定要用的哇,就比如gcc编译器用math.h需要添加-lm一样。

370

帖子

7

威望

3497

eV
积分
4007

Level 6 (一方通行)

5#
 楼主 Author| 发表于 Post on 2021-8-4 13:52:08 | 只看该作者 Only view this author
lyj714 发表于 2021-8-4 13:49
c/c++你链接到外部库肯定要用的哇,就比如gcc编译器用math.h需要添加-lm一样。

那么我该怎么加这个-lint2呢?

313

帖子

2

威望

3900

eV
积分
4253

Level 6 (一方通行)

6#
发表于 Post on 2021-8-4 13:55:13 | 只看该作者 Only view this author
Freeman 发表于 2021-8-4 13:52
那么我该怎么加这个-lint2呢?

我的意思是如果你用的g++编译器,就用这种命令行编译链接
  1. g++ foo.cpp -lint2 -I <include> -L <lib> -o foo
复制代码

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
Freeman + 5 问题解决了,非常感谢!

查看全部评分 View all ratings

16

帖子

0

威望

175

eV
积分
191

Level 3 能力者

7#
发表于 Post on 2022-6-28 17:38:56 | 只看该作者 Only view this author
lyj714 发表于 2021-8-4 13:55
我的意思是如果你用的g++编译器,就用这种命令行编译链接

请问能否说下,在什么情况、什么文件夹下执行此命令呢?

1万

帖子

0

威望

9868

eV
积分
22108

Level 6 (一方通行)

8#
发表于 Post on 2022-6-28 18:04:30 | 只看该作者 Only view this author
zhaoxy008 发表于 2022-6-28 10:38
请问能否说下,在什么情况、什么文件夹下执行此命令呢?

在你写的cpp文件所在目录下执行这个命令。
只有当你需要自己写C/C++代码调用libint的时候需要。如果用别人已有的、调用libint的代码,并且别人有Makefile的情况,应该看一下Makefile里面库函数在哪里定义,然后加在那里,或者在configure的时候指定。
Zikuan Wang
山东大学光学高等研究中心 研究员
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员
Google Scholar: https://scholar.google.com/citations?user=XW6C6eQAAAAJ
ORCID: https://orcid.org/0000-0002-4540-8734
主页:http://www.qitcs.qd.sdu.edu.cn/info/1133/1776.htm
GitHub:https://github.com/wzkchem5
本团队长期招收研究生,有意者可私信联系

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-22 07:13 , Processed in 0.167004 second(s), 23 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list