当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : apt-get 如何知道要安装的软件的名字 [结]
帖子发表于 : 2013-03-19 21:24 

注册: 2011-12-08 22:46
帖子: 15
送出感谢: 5
接收感谢: 0 次
比如:
boost库:
sudo apt-get install libboost-dev
libcurl库:
sudo apt-get install libcurl4-openssl-dev

libboost-dev和libcurl4-openssl-dev这个名字是怎么来的,我知道他叫boost和libcur。
直接使用sudo apt-get install boost 是不行的。

答案:aptitude search boost

后续问题:boost库怎么使用呢? 编译通不过的,具体见3楼。
答案:
1、联网编译安装的方式:
g++ -Wall -o "main" "main.cpp" -std=gnu++0x -lrt -lpthread -static -lboost_system ( -lpthread -lboost_system是关键)
2、离线安装要设置库的路径,具体没有测试。

后续问题:如何编译低核心的可执行文件呢?具体见12楼。
无满意答案。


最后由 飞翔的薄荷 编辑于 2013-03-23 2:17,总共编辑了 5 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-19 21:32 
头像

注册: 2007-12-14 13:40
帖子: 49890
地址: 志虚国乌由市
系统: Winbuntu
送出感谢: 29
接收感谢: 414
aptitude search boost


_________________
冷轩信

渠月 · QY

本人只会灌水,不负责回答问题

无聊可以点一下→ http://u.nu/ubuntu

安装flash 还是要用
代码:
sudo apt install adobe-flashplugin



_________________
评价: 3.7% 飞翔的薄荷
 
页首
 用户资料  
 
3 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-19 22:03 

注册: 2011-12-08 22:46
帖子: 15
送出感谢: 5
接收感谢: 0 次
用这个命令安装完成的boost库没法使用
改用sudo apt-get install libboost-all-dev也不行。
比如随便写点代码
[text]
#include <iostream>
#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>

int main()
{
boost::asio::io_service io;
boost::asio::deadline_timer t(io, boost::posix_time::seconds(5));
t.wait();
std::cout << "Hello, world!\n";
return 0;
}


g++ -Wall -o "main" "main.cpp" (在目录 /home/kk/桌面/testboost 中)
/tmp/ccGkKz5a.o: In function `__static_initialization_and_destruction_0(int, int)':
main.cpp:(.text+0xf9): undefined reference to `boost::system::generic_category()'
编译失败。
main.cpp:(.text+0x103): undefined reference to `boost::system::generic_category()'
main.cpp:(.text+0x10d): undefined reference to `boost::system::system_category()'
/tmp/ccGkKz5a.o: In function `boost::system::error_code::error_code()':
main.cpp:(.text._ZN5boost6system10error_codeC2Ev[_ZN5boost6system10error_codeC5Ev]+0x10): undefined reference to `boost::system::system_category()'
/tmp/ccGkKz5a.o: In function `boost::asio::error::get_system_category()':
main.cpp:(.text._ZN5boost4asio5error19get_system_categoryEv[boost::asio::error::get_system_category()]+0x7): undefined reference to `boost::system::system_category()'
/tmp/ccGkKz5a.o: In function `boost::asio::detail::posix_tss_ptr_create(unsigned int&)':
main.cpp:(.text._ZN5boost4asio6detail20posix_tss_ptr_createERj[boost::asio::detail::posix_tss_ptr_create(unsigned int&)]+0x15): undefined reference to `pthread_key_create'
/tmp/ccGkKz5a.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::task_io_service>::context>::~posix_tss_ptr()':
main.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceEE7contextEED2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_15task_io_serviceEE7contextEED5Ev]+0xf): undefined reference to `pthread_key_delete'
/tmp/ccGkKz5a.o: In function `boost::asio::detail::posix_tss_ptr<boost::asio::detail::call_stack<boost::asio::detail::strand_service::strand_impl>::context>::~posix_tss_ptr()':
main.cpp:(.text._ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEED2Ev[_ZN5boost4asio6detail13posix_tss_ptrINS1_10call_stackINS1_14strand_service11strand_implEE7contextEED5Ev]+0xf): undefined reference to `pthread_key_delete'
collect2: ld 返回 1
[/text]


哪位高手告诉我下怎么回事?


最后由 mraandtux 编辑于 2013-03-19 22:19,总共编辑了 1 次
4楼有说明


页首
 用户资料  
 
4 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-19 22:20 
头像

注册: 2009-12-12 19:29
帖子: 5059
地址: 随便一个地方
系统: 本地大型发行版除外
送出感谢: 0 次
接收感谢: 166
看下面的链接:
http://blog.csdn.net/lyuan13141234/arti ... ls/5667570
此外因页面美观整理了楼上的Log。


_________________
Github见!



_________________
评价: 3.7% 飞翔的薄荷
 
页首
 用户资料  
 
5 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 0:21 

注册: 2011-12-08 22:46
帖子: 15
送出感谢: 5
接收感谢: 0 次
g++ -Wall -o "main" "main.cpp" -std=gnu++0x -lrt -lboost_system
编译成功结束了。
但是没法运行:
./main: error while loading shared libraries: libboost_system.so.1.53.0: cannot open shared object file: No such file or directory


页首
 用户资料  
 
6 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 8:12 

注册: 2007-10-22 16:54
帖子: 344
送出感谢: 0 次
接收感谢: 8
代码:
dpkg -l


页首
 用户资料  
 
7 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 10:22 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
飞翔的薄荷 写道:
g++ -Wall -o "main" "main.cpp" -std=gnu++0x -lrt -lboost_system
编译成功结束了。
但是没法运行:
./main: error while loading shared libraries: libboost_system.so.1.53.0: cannot open shared object file: No such file or directory

虽然说是缺库,但怎么你这boost的库要求版本那么新的?这是哪个版本的啊? :em20 :em20 :em20


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关


页首
 用户资料  
 
8 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 10:45 

注册: 2011-12-08 22:46
帖子: 15
送出感谢: 5
接收感谢: 0 次
YeLee 写道:
虽然说是缺库,但怎么你这boost的库要求版本那么新的?这是哪个版本的啊? :em20 :em20 :em20


是这样的用sudo apt-get install libboost-dev的方法,下载下来的库不会使用,卸载了。
然后用网上的方法,离线下载安装boost,然后sudo ./bootstrap.sh;./b2 install。这样就是最新的库了。
加上-lboost_system就通过编译了。但是运行的时候说找不到动态库。我记得别人说boost默认为静态库,不知道这是怎么回事。


页首
 用户资料  
 
9 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 10:56 
头像

注册: 2008-08-13 8:48
帖子: 26391
地址: 东海硇州,一双管钥。
系统: Fundu i64
送出感谢: 50
接收感谢: 344
假如你是自己手动安装的话,试一下看看那库装在什么地方吧,不过,记忆中没修改过prefix的话都是放在/usr/local下面的吧。假如那文件存在的话,想必是ld.so.conf里面没有加/usr/local/lib进去了吧。 :em20 :em20 :em20


_________________
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关



_________________
评价: 3.7% 飞翔的薄荷
 
页首
 用户资料  
 
10 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 11:04 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
● as libboost-all
p libboost-all-dev - Boost C++ Libraries development files (ALL, def
p libboost-all-dev:i386 - Boost C++ Libraries development files (ALL, def

dev安装了干嘛。是做开发?

引用:
不会使用
dpkg -L libboost-all-dev |grep ".*\.h"
看头文件吧。


_________________
● 鸣学



_________________
评价: 3.7% 飞翔的薄荷
 
页首
 用户资料  
 
11 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 12:58 
头像

注册: 2011-06-26 18:28
帖子: 240
送出感谢: 3
接收感谢: 4
一般用下面的方法:
代码:
sudo apt-cache search <软件包大概名称>

即可!


_________________
http://www.linux-unix.asia
720P电影,无损音乐,Linux教程资料:http://hdcity.leniter.org/promotionlink.php?key=64472c449c1ade6ed71c4de838745c67



_________________
评价: 3.7% 飞翔的薄荷
 
页首
 用户资料  
 
12 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 14:01 

注册: 2011-12-08 22:46
帖子: 15
送出感谢: 5
接收感谢: 0 次
dev安装了干嘛。是做开发?
有一个项目服务器在windows linux都要有。所以选择劲量跨平台编码。这几天才开始学习linux。
9楼的方法没有试过,已经把系统还原了。
使用 dpkg -L libboost-all-dev |grep ".*\.h" 在本机上可以编译执行了。

使用 -static 编译选项可以解决 找不到 libboost_system.so的问题。
g++ -Wall -o "main" "main.cpp" -std=gnu++0x -lrt -static -lboost_system

但是现在新问题有出来了:
ubuntu 12.04 编译出来的程序,在red hat linux 下没法跑,说是核心太低。kernel too old
用uname -a 看了下,一个是3.5 一个是2.6。

如何编译低核心的可执行文件呢?


页首
 用户资料  
 
13 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 14:11 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 274
交叉编译?
其实最好去irc,一堆rh的家伙在。让他们编译出静态包。


_________________
● 鸣学


页首
 用户资料  
 
14 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 14:22 

注册: 2011-12-08 22:46
帖子: 15
送出感谢: 5
接收感谢: 0 次
irc ? 根据百度百科的介绍是一种网络聊天协议。
现在我编译出来的东西,都不知道最低核心是怎么要求的?
现在是不是用一个老旧的linux下,编译出来的东西,才能在大多数环境下跑?
还有就是,我不可能把源代码给别人的。


页首
 用户资料  
 
15 楼 
 文章标题 : Re: apt-get 如何知道要安装的软件的名字
帖子发表于 : 2013-03-20 15:49 
头像

注册: 2009-03-28 16:10
帖子: 1849
系统: Arch debian win7
送出感谢: 10
接收感谢: 70
简单的说,不同的发行版头文件和库文件的默认位置是不一样的,所以想要编译出所有linux版本通用的二进制文件基本上是妄想。可以把头文件和库文件一起打包,然后做一个安装脚本,还要在安装脚本里添加语句用来设置系统搜索头文件和库文件的默认路径。


_________________
为什么我的问题总是没有人回答?

金钱、责任与荣誉:OpenSSL主席谈心脏出血
拥有丰富API接口和广泛程序支持的dropbox云同步,点此注册,开始就比别人多500兆,我的空间也会增加。谢啦
==========我的作品==========
我做的一个面向开发者的gnome-shell扩展,有js基础又想自己调整gnome-shell功能的可以尝试一下
gnome-shell扩展开发入门,gnome-shell扩展系统扫盲帖


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译