g++连接.a文件的问题。多谢!
我有一个Test.c用到了.a库里面的一个文件。
Test.c如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
#include <time.h>
#include <wait.h>
#include "SysUtil.h"
int main(int argc , char **argv)
{
FILE *fp;
int pos;
int i;
int line = 0;
if (getcfgpath(fullpath, "") == NULL) {
}
}
我如果用g++ -c Test.c编译的话能通过。但如果用
g++ libitl.a libcontainer.a libsfc4k.a -o Test.o连接就会出现错误:
$ g++ libitl.a libcontainer.a libsfc4k.a -o Test.o
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../crt1.o: In function `_start':
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../crt1.o(.text+0x18): undefined r'
collect2: ld returned 1 exit status
如果直接编译:
g++ -o libitl.a libcontainer.a libsfc4k.a Test.c
/tmp/ccSrcTiD.o: In function `main':
/tmp/ccSrcTiD.o(.text+0x72): undefined reference to `getcfgpath(char*, char con'
collect2: ld returned 1 exit status
为什么啊?多谢了!
Test.c如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <signal.h>
#include <unistd.h>
#include <time.h>
#include <wait.h>
#include "SysUtil.h"
int main(int argc , char **argv)
{
FILE *fp;
int pos;
int i;
int line = 0;
if (getcfgpath(fullpath, "") == NULL) {
}
}
我如果用g++ -c Test.c编译的话能通过。但如果用
g++ libitl.a libcontainer.a libsfc4k.a -o Test.o连接就会出现错误:
$ g++ libitl.a libcontainer.a libsfc4k.a -o Test.o
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../crt1.o: In function `_start':
/usr/lib/gcc-lib/i386-redhat-linux/3.2/../../../crt1.o(.text+0x18): undefined r'
collect2: ld returned 1 exit status
如果直接编译:
g++ -o libitl.a libcontainer.a libsfc4k.a Test.c
/tmp/ccSrcTiD.o: In function `main':
/tmp/ccSrcTiD.o(.text+0x72): undefined reference to `getcfgpath(char*, char con'
collect2: ld returned 1 exit status
为什么啊?多谢了!
...全文
相关推荐
Ubuntu环境下使用G++编译CPP文件
对于这个例子,正确的命令是: ``` g++ -o test test.o class2.a class1.a ```在这个过程中,`g++`的链接顺序至关重要,因为链接器会按照指定的顺序解析符号引用。
ubuntu离线安装g++
在Linux系统中,尤其是Ubuntu和Kylin这样的基于Debian的发行版,开发人员经常需要使用C++编译器,如g++。对于那些没有网络连接或者网络环境受限的用户,离线安装g++就显得尤为重要。
linux下g++编译与使用静态库和动态库
静态库(*.a)静态库是一种库文件类型,它将所有依赖项编译到库文件中,使得库文件自给自足, 不需要在编译时链接其他库文件。
gcc g++ 中文编译选项详解 手册
C++ 文件* .s:汇编语言源程序* .S:汇编语言源程序,需要预处理* .h:预处理器文件* .o:目标文件* .a:归档库文件GCC 和 G++ 编译器提供了许多选项来控制编译过程,包括:* -
gcc、g++离线安装包
在实际开发中,你可能会遇到链接错误、语法错误等各种问题,这时,GCC和G++的错误信息会帮助你定位问题所在。学习如何理解和解决这些错误是每个开发者必须掌握的技能。


