求解器开源库新手入门教程2(补充说明)

open_source_library 2016-04-11 09:26:06
发了一个帖,没想到有人说话很不礼貌,让我觉得论坛上交流真没意思。。

不过也有一些同学发私信跟我交流。我在不违反比赛规则,保证公平性的前提下很想帮这些同学。

有不少是大学生(我渣硕),都没接触过Linux,平时也没了解过开源社区。我希望下面教程能帮到你们一点点。

下面以lpsolve开源库的安装使用为例。注意是在Linux下操作。

首先下载地址
https://sourceforge.net/projects/lpsolve/files/lpsolve/5.5.2.0/lp_solve_5.5.2.0_source.tar.gz/download

然后解压,进入lpsolve55目录,更改ccc文件的权限,命令是"chmod a+x ccc",然后直接执行"./ccc“
就可以生成库文件。(在bin下)

在future_net下创建一个文件夹lib,把静态库文件放进去。
把lpsolve头文件放在你喜欢放的地方,只要找到就行,包括
lp_Hash.h
lp_lib.h
lp_matrix.h
lp_mipbb.h
lp_SOS.h
lp_types.h
lp_utils.h
最好一个不落


在cmakelist.txt添加下面的命令,好让编译器找到这个静态库
find_library(LPSOLVE55_LIBRARY lpsolve55 ${PROJECT_BINARY_DIR}/../lib)
IF (NOT LPSOLVE55_LIBRARY)
MESSAGE(FATAL_ERROR "LPSOLVE55_LIBRARY not found")
ENDIF(NOT LPSOLVE55_LIBRARY)

target_link_libraries(future_net ${LPSOLVE55_LIBRARY})
target_link_libraries(future_net pthread)
target_link_libraries(future_net dl)

这样就能在你的代码里随意使用lpsolve了。

想看实例代码?一般开源库都会有demo,example文件夹,里面找找吧。实在不行,谷歌"lpsolve example",一定会有的。


师兄只能帮到这了。希望你们加油,复活赛还有几天呢,我看到有的大一大二就来参赛了,你们了不起。拿不拿名次不重要,重要的是参与了,进步了,明年,后年,你们还有的是机会。
...全文
1927 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wdf0324 2018-05-02
  • 打赏
  • 举报
回复
@楼主 lpsolve使用c#基于B/S运行就报找不到lpsolve55.dll,在C/S下运行就可以,请不吝赐教
  • 打赏
  • 举报
回复
引用 10 楼 qq_34666430 的回复:
我们根据大神的指导,做出一版,在添加检测到环的约束时,一边出结果,一边对结果进行环检测,但是为什么约束条件好像附加不上了呀。。。!!!!!要哭了。。求大神再加指点,是否还有需要设置的参数。这几天边学边做的。。。实在不懂。。今天中午就截止了,全靠大神的解答了。
发现一个环,就把环约束加进模型,迭代求解,是很好的解决办法。
qq_34666430 2016-04-15
  • 打赏
  • 举报
回复
我们根据大神的指导,做出一版,在添加检测到环的约束时,一边出结果,一边对结果进行环检测,但是为什么约束条件好像附加不上了呀。。。!!!!!要哭了。。求大神再加指点,是否还有需要设置的参数。这几天边学边做的。。。实在不懂。。今天中午就截止了,全靠大神的解答了。
  • 打赏
  • 举报
回复
引用 8 楼 tiantiansmb 的回复:
编译时总是出现"LPSOLVE55_LIBRARY not found"这个问题,求大神解答啊啊啊啊
实在不会的话,建议写makefile。要是makefile都不会的话,直接用命令g++,百度一下怎么添加静态库就行。最后在readme里说明你的编译命令就行。
tiantiansmb 2016-04-14
  • 打赏
  • 举报
回复
编译时总是出现"LPSOLVE55_LIBRARY not found"这个问题,求大神解答啊啊啊啊
  • 打赏
  • 举报
回复
引用 6 楼 lsj9383 的回复:
楼主,你知道GLPK如何添加到一键编译环境里面么?我的glpk都安装在默认的位置下的。
都是类似的。实在不会的话,建议写makefile。要是makefile都不会的话,直接用命令g++,百度一下怎么添加静态库就行。最后在readme里说明你的编译命令就行。我觉得官方会接受的。
lsj9383 2016-04-14
  • 打赏
  • 举报
回复
楼主,你知道GLPK如何添加到一键编译环境里面么?我的glpk都安装在默认的位置下的。
baidu_34626894 2016-04-12
  • 打赏
  • 举报
回复
我是今天第一个回复大大之前的帖子的,就在中午一点的时候,然后就去写求解器的算法了。我用的lpsolve,看文档,写算法,一直到晚上九点才写好,在本地链接的动态库,效果很好。。。 但是后来上传就发现动态库不能用了,要用静态库,在网上各种找静态库的编译方法,结果一直到12点也没有成功。。直到刚刚才看到大大你发的这个帖子。没能早一点看到,确实很遗憾,不过现在能看到,也帮助非常大。。至少在复活赛里也可以用上。。再不济,也学会了cmake链接动态库和静态库的方法。 最后,郑重的感谢版主大大的分享。。 PS:继续在复活赛里挣扎去了
frostbolt 2016-04-12
  • 打赏
  • 举报
回复
引用 4 楼 MaggieLXC 的回复:
不在64里面也能参加复活赛吗
除非出现前64名违规被取消资格,让排在后面的顺延进入64名获得复活赛资格外,不再设立新的复活条件了。
MaggieLXC 2016-04-12
  • 打赏
  • 举报
回复
不在64里面也能参加复活赛吗
cq_yj_818 2016-04-12
  • 打赏
  • 举报
回复
贴贴源码你看如何?
抽裤 2016-04-11
  • 打赏
  • 举报
回复
这也太仁至义尽了,GLPK的表示用早了。。

127

社区成员

发帖
与我相关
我的任务
社区描述
华为软件精英挑战赛(Huawei Code Craft)是华为公司面向全球大学生举办的一年一度的大型软件竞赛,致力于让参赛学生感受软件改变世界魅力,展示软件设计与编程潜力,享受Coding解决问题
开源软件软件工程软件构建 技术论坛(原bbs)
社区管理员
  • HUAWEI Code Craft社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧