linux下C语言编程动态库so的编写及调用

//test_so.h
#include <stdio.h>
void test_a();
void test_b();
//test_a.c
#include "so_test.h"

void test_a()
{
	printf("this is in test_a...\n");
}

//test_b.c
#include "so_test.h"

void test_b()
{
	printf("this is in test_b...\n");
}

//test.c
#include "so_test.h"

int main()
{
	test_a();
	test_b();
	return 0;
}

编译步骤

gcc test_a.c test_b.c -fPIC -shared -o libtest.so

gcc test.c -L. -ltest -o test

./test

解决链接库问题:

#vim /etc/profile

LD_LIBRARY_PATH=/mnt/hgfs/Ubuntu_shared/so:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH

# source /etc/profile

时间: 2024-08-05 23:31:13

linux下C语言编程动态库so的编写及调用的相关文章

__FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )

root@xuanfei-desktop:~/cpropram/2# cat global.h //头文件#ifndef CLOBAL_H        #define GLOBAL_H        #include <stdio.h>        int funca(void);        int funcb(void);#endifroot@xuanfei-desktop:~/cpropram/2# cat funca.c //函数a#include "global.h&

Linux操作系统下C语言编程入门

这里向大家介绍一下在Linux/UNIX 的机器上,进行 C/C++ 编程的一些入门级知识. · 所需具备的背景知识 · 开发所需的基本环境 · 获得帮助的途径 · 通过一个实例了解基本步骤 Prerequisite 先决条件: 在Linux上编写 C 程序,至少要熟悉以下两方面的基础知识: 1. C语言的编程基础,至少要知道一些基本的语法,控制流程等编程常识. 对常用的标准 C 函数库有常识性的了解. 2. 对Linux/UNIX 的操作有常识性的了解,掌握常用的shell 命令,如 ls,

Linux下C语言实现C/S模式编程_C 语言

由标题可知,这篇文章主要讲如何用C语言实现一个C/S模式的程序. 主要功能:时间回送. 客户机发出请求,服务器响应时间,并返回服务器时间,与客户机进行同步. 废话不多说,下面直接贴出源代码. 代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <time.h> #

log-LINUX下C语言编程怎么打印日志

问题描述 LINUX下C语言编程怎么打印日志 刚刚工作,以前看过别人写的代码调试完后都可以打印日志来查看日志,自己新参加工作,给服务器发包什么的,开始发总是出问题,带我的人就一直和我说你打印个日志出来,然后看日志.但是我不会,只能printf把变量值输出到屏幕上看,也想写的更专业一点,求大神指点.那个日志是怎么做的,是自己写的函数,还是LINUX自带这种功能或函数,要怎么用.希望可以有一小段代码例子.还有日志的存放位置,写一个项目日志要存在同一个工程里吗 解决方案 用log4c等专业打印log的

linux下C语言多线程编程实例

linux下C语言多线程编程实例 学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵. 下面先来一个实例.我们通过创建两个线程来实现对一个数的递加. 或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉. 下面是我们的代码: /*thread_example.c : c multiple thread programming in linux *author : falcon *E-mail : tunzhj03@st.lzu.edu.cn

linux c-小白刚开始在linux学习c语言编程。有问题不会请各位大神指导下

问题描述 小白刚开始在linux学习c语言编程.有问题不会请各位大神指导下 6行和7行中的main有什么作用 解决方案 Programme file name! if programme file name is "test", gcc -o test .... 解决方案二: i wait to reply for your question 解决方案三: 这是Makefile的编写,main.o是main.c生成的中间文件,第七行的main表示最终生成的目标文件,他依赖于objs内的

《Linux 高级程序设计(第三版)》——第1章  Linux下C语言开发环境 1.1 Linux操作系统简介

第1章 Linux下C语言开发环境 Linux应用程序开发平台有别于Windows应用程序开发平台,因此在介绍具体编程内容之前,本书第1.2章主要介绍Linux操作系统下C语言程序的开发环境和开发工具. 本章主要介绍Linux下C语言开发环境,包括一些基本概念和基本编程环境.本章第1节主要对Linux操作系统及其相关术语进行了简要介绍. 本章第2节主要介绍Linux操作系统下编程基本概念以及如何获得Linux下的帮助文件,包括Linux操作系统下C语言库文件标准以及系统调用的基本概念. 本章第3

win7下c语言编程软件有哪些

  win7下c语言编程软件有哪些.好多刚开始接触c语言的朋友都想知道用上面软件开发c语言比较好,一般来说微软的东西肯定是最好的,更适合新手学习,等上手了就可以接触别的软件了.这里脚本之家小编就为大家分享一下c语言编程软件有哪些? Microsoft Visual C++ .Microsoft Visual Studio. DEV C++.Code::Blocks.Borland C++.WaTCom C++.Borland C++ Builder.GNU DJGPP C++.Lccwin32

Unix和Linux下C语言学习指南

尽管 C 语言问世已近 30 年,但它的魅力仍未减退.C 语言继续吸引着众多的开发者,他们为了编写.移植或维护应用程序而必须学习新技能. 本文是为了满足对C语言初学者或想提高自身C语言修为的开发人员的需要而写的.希望对您的学习和工作有所帮助.您也许不赞同其中的某些方法,但我们希望您会喜欢其中的一些. 本文不介绍作为一个程序员应掌握得语言细节,而是与初学者分享自己的UNIX 下C语言编程学习经验;也不说明一个合格的编程人员应该掌握的计算机知识,比如:操作系统.数据结构与算法.数据库等等. 不管您出