ChinaUnix.net
相关文章推荐:

gcc 静态库定义全局变量

环境:ubuntu 编译出现的问题:用gcc编译找不到 printf等常用函数(stdio.h中声明的) abc.c:(.text+0x1b4): undefined reference to `printf' 曾尝试指定 /usr/lib/libc.a,这回printf不包错了,但出现如下错误: /usr/lib/libc.a(iofwrite.o): In function `fwrite': (.text+0x144): undefined reference to `_Unwind_Resume' 这到底是怎么回事?按正常来说是不用指定 /usr/lib/libc.a(系统默认链接的).........

by kallytin - C/C++ - 2010-08-20 14:11:03 阅读(30857) 回复(76)

相关讨论

共享库的全局变量 gcc使用的库版本 编译gcc的配置选项 其他gcc信息dump 1)生成动态链接库libtest.so ---test.h--- #ifndef __TEST_H__ #define __TEST_H__ #include #include extern int test_a(); extern int test_b(); extern int test_c(); extern int global_test; #endif --test.c-- #include "test.h" int global_test = 0x123456; int test_a() { printf("in test a \n"); printf("%d\n",global_tes...

by hylpro - Linux文档专区 - 2009-07-02 21:40:50 阅读(1447) 回复(0)

本帖最后由 csumck 于 2012-11-29 14:15 编辑 假设有个静态库叫libx.a,里面只有一个函数叫x(),这个函数什么都不干. 然后有个静态库叫liby.a,里面有两个函数,一个函数是y(),这个函数什么都不干,另外一个函数是yx(),这个函数调用了libx.a里的x()函数。 现在我写了一个程序main.c,在main函数里调用了y()函数,也就是说我实际上用不到libx.a里的x()函数。 这时编译完进行链接的时候,我发现一定要链接上libx.a才能成功,否则...

by csumck - C/C++ - 2012-11-29 15:01:52 阅读(1812) 回复(2)

gcc 创建静态库的的时候,出了点问题。 写了两个源文件 hellofirst.c hellosecond.c /*hellofirst.c*/ #include void hellofirst() {printf("The first hello\n") ; } /*hellofirst.c*/ #include void hellosecond() {printf("The second hello\n") ; } 然后 ar -r libhello.a hellofirst.c hellosecond.c 创建一个名为 libhello.a的库 然后些一个源文件 twoh...

by 比克流 - C/C++ - 2007-10-12 11:58:35 阅读(9342) 回复(5)

有个程序,分为两部份写,通用部作成静态库。 主体部份,是个应用程序。 编译时都是开-g3 但是出错时,只能看到主体部份的调试信息,没有静态库的。 为什么呢?

by rrrrrrrr8 - C/C++ - 2011-11-10 15:45:58 阅读(3852) 回复(4)

本人菜鸟级,刚刚在学习linux,参考的书籍是吴岳的《Linux C程序设计大全》,当看到196页,gcc编译器部分使用静态库的部分的时候,出现了个问题,希望大神们指导下!!!感激不尽啊。。。 静态库的代码: static_lib.h 静态库全局变量和函数的声明 main.c 使用 gcc -L. main.c -o app 的情况 使用gcc main.c -lstatic_lib.a -o app的情况 使用gcc main.c -static ./static_lib.a -o app的情况 书上写到 使用这三种方法...

by q892512600 - Linux环境编程 - 2013-04-27 14:33:34 阅读(1253) 回复(2)

o 生成静态库的方法 $ gcc -c gdfontwu.c $ gcc -c gdfontliu.c $ gcc -c gdfontbin.c $ ar rc libgdfont.a gdfontwu.o gdfontliu.o gdfontbin.o (ranlib libgdfont.a 可生成索引) 用 nm libgdfont.a 来看里面的目标文件和导出函数(带 T 标记)。 o 生成动态库的方法 $ gcc -c gdfontwu.c $ gcc -c gdfontliu.c $ gcc -c gdfontbin.c $ gcc -o libgdfont.so -shared -fPIC gdfontwu.o gdfontliu.o gdfontbin.o -fPIC:表示编译为位...

by jia_killer - Linux文档专区 - 2009-09-25 19:15:24 阅读(937) 回复(0)

一、库文件简介 简单地说,库(Library)就是一组已经写好了的函数和变量、经过编译代码,是为了能够提高开发效率和运行效率而设计的。库分为静态库(Static Library)和共享库(Shared library)两类。静态库文件的扩展名是.a,共享库文件的扩展名是.so(在CYGWIN环境下,分别叫做.o和.dll)。共享库现在常常被叫做动态库,是由于很多人借用了MS Windows的DLL(Dynamic Linked Library)这个词。 (1)静态库 静态是指每个用...

by jia_killer - Linux文档专区 - 2009-09-23 23:00:58 阅读(688) 回复(0)

gcc编译时链接静态库是不是一定得加 -L xxx.a ? 我看到有些时候不加也可以,直接添加上xxx.a就行了,为什么会这样,在我电脑上却一定得加呢?

by It'sGifted - CPU与编译器 - 2008-09-10 13:04:07 阅读(2900) 回复(4)

现在正在编译一个老外国人传过来的fortran程序,他给出的命令如下: gcc -c icmlib1.f90 gcc -o img1 -lgfortran -lgfortranbegin img1.f90 f.f90 icmlib1.o ranlib.a 但是在我电脑上运行的时候却提示: ranlib.a: could not read symbols: File format not recognized 他说这样在他的电脑上是能运行的,但在我电脑上却不能运行,必须得在ranlib.a前加 "-L"才行,不过这样就会报告有些函数没定义…… 有没有哪位高手碰到过这种情...

by It'sGifted - Linux环境编程 - 2008-09-10 10:08:21 阅读(2028) 回复(0)

假设当前目录下有这些源文件:[main.c func.c func.h],其中main.c要调用func.c中的函数。 【1】生成静态库: $ gcc -c func.c -o func.o $ ar rcs libfunc.a func.o $ gcc main.c -o main -static -L. -lfunc $ ./main 【2】生成动态库: $ gcc -fPIC -c func.c -o func.o $ gcc -shared -o libfunc.so.1.0.0 func.o $ ln -s libfunc.so.1.0.0 libfunc.so $ gcc main.c -o main -L. -lfunc $ export LD_LIBRARY_PATH=$(pwd)...

by piaoyizu - Linux文档专区 - 2008-04-29 16:33:42 阅读(584) 回复(0)