linux-怎样把别人给的库和自己的代码用gcc编译成可执行程序?

问题描述

怎样把别人给的库和自己的代码用gcc编译成可执行程序?

别人给的文件是:
libzmq.so.3 libz.so.1 libboost_thread.so.1.46.0 libboost_date_time.so.1.46.0

问题:
1、这些是共享库吗?
2、请给一个gcc命令,把main.c 连同上述文件编译成可执行文件。
谢谢!

解决方案

so文件时共享库,把他们一起link进
你可以gcc -o main.c libzmq.so.3...

时间: 2024-11-05 16:36:10

linux-怎样把别人给的库和自己的代码用gcc编译成可执行程序?的相关文章

Linux移植随笔:对tslib库的ts_test测试程序代码的一点分析【转】

转自:http://www.latelee.org/embedded-linux/porting-linux-tstest-code.html 本文是作者对tslib库的ts_test.c文件进行分析的随笔,其实tslib的几个测试程序结构差不多,譬如ts_print.c和ts_print_raw.c等. 本文并没有涉及太多概念,也没有详细介绍这些概念,但并不代表作者对此不了解,也不代表作者对此很精通.如文中提到的input,虽只出现一个单词,但是相信许多人都知道它在文中指的是Linux操作系统

Linux下如何用GCC编译动态库

  本文主要解决以下几个问题 1 为什么要使用库? 2 库的分类 3 创建自己的库 或许大家对自己初学 Linux时的情形仍记忆尤新吧.如果没有一个能较好的解决依赖关系的包管理器,在Linux下安装软件将是一件及其痛苦的工作.你装a包时,可能会提示你要先装b包,当你费尽心力找到b包时,可能又会提示你要先安装c包.我就曾被这样的事搞的焦头烂额,至今一提起rpm仍心有余悸,头皮发麻.说是一朝被蛇咬,十年怕井绳怕也不为过. Linux下之所以有这许多的依赖关系,其中一个开发原则真是功不可没.这个原则就

linux下如何使用正则表达式regex库对通过libpcap在线抓的数据包进行筛选?

问题描述 linux下如何使用正则表达式regex库对通过libpcap在线抓的数据包进行筛选? linux下有一个用c写的通过libpcap抓取数据包的程序,如何通过正则表达式库regex对数据包进行筛选?有大神的话请贴一部分代码什么的,,, 解决方案 libpcap程序里,主体通过pcap_loop或者pcap_dispatch进行循环,需要提供报文的回调函数 在回调函数里面,对报文进行解析,逐层剥离协议头(ip->tcp->7层) 根据需要进行7层解析(例如解析http字段,可选) 对解

linux下php添加mysqli拓展库时,编译报错

问题描述 linux下php添加mysqli拓展库时,编译报错 php和mysql都是已经编译安装好了,现在想要给php添加mysqli 拓展库,结果在make的时候报错 cd /usr/local/src/php-5.6.19/ext/mysqli /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mys

Linux Debugging(六): 动态库注入、ltrace、strace、Valgrind

实际上,Linux的调试方法非常多,针对不同的问题,不同的场景,不同的应用,都有不同的方法.很难去概括.本篇文章主要涉及本专栏还没有涵盖,但是的确有很重要的方法.本文主要包括动态库注入调试:使用ltrace命令处理动态库的调试:使用strace调试系统调用的问题:Valgrind的简要介绍. 1. 动态库注入       如何排除其他library的调用问题?动态库注入(library injection)有可能会让你事半功倍. 一个大型的软件系统,会用到非常多的动态库.那么如果该动态库的一个a

linux gcc 编译时头文件和库文件搜索路径

一.头文件    gcc 在编译时寻找所需要的头文件 :    ※搜寻会从-I开始    ※然后找gcc的环境变量 C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH    ※再找内定目录   /usr/include   /usr/local/include   /usr/lib/gcc-lib/i386-linux/2.95.2/include   /usr/lib/gcc-lib/i386-linux/2.95.2/../../../..

linux使用gcc编译c语言共享库步骤_C 语言

对任何程序员来说库都是必不可少的.所谓的库是指已经编译好的供你使用的代码.它们常常提供一些通用功能,例如链表和二叉树可以用来保存任何数据,或者是一个特定的功能例如一个数据库服务器的接口,就像MySQL. 大部分大型的软件项目都会包含若干组件,其中一些你发现可以用在其他项目中,又或者你仅仅出于组织目的将不同组件分离出来.当你有一套可复用的并且逻辑清晰的函数时,将其构建为一个库会十分有用,这样你就不将这些源代码拷贝到你的源代码中,而且每次都要再次编译它们.除此之外,你还可以保证你的程序各模块隔离,这

源代码的几个dll库出现循环调用时该如何编译?

问题描述 源代码的几个dll库出现循环调用时该如何编译? 是这样,我在网上下了一份c的源代码,比较老了,09年写的,是windows平台下的.代码里作者自己写了几个dll库,也提供了相应的cpp文件,但是都没编译好.之前在网上查说用到dll库时如果不用loadlibrary函数的话就要相应的Lib文件,作者也是这么干的.但是这几个库出现了循环调用的情况.只是库循环调用,不是函数循环调用.比如B库调用了A库的a函数,而A库又调用了B库的b函数,而a.b函数之间没有任何关系.这样一来我无论是A库还是

c语言-Linux下使用gcc编译c11程序是不是过于麻烦了?

问题描述 Linux下使用gcc编译c11程序是不是过于麻烦了? 每次都要输入-std=c11 是不是过于麻烦了?怎么让它默认为-std=c11? 解决方案 因为它默认是c89等标准,所以需要指定 你可以写一个makefile ,这样每次只用make来编译