linux下连接静态库的问题
用静态库封装类调用时出错,不明白问题出在哪里,请高手指点。简单示例程序:
#ifndef __HTTP_H__
#define __HTTP_H__
#include <stdio.h>
class Http
{
public:
void InitHttp();
void CloseHttp();
int PrintHttp(const char* str);
};
#endif
cpp文件:
#include "http.h"
void Http::InitHttp()
{
}
void Http::CloseHttp()
{
}
int Http::PrintHttp(const char* str)
{
printf("%s\n",str);
return 1;
}
main.cpp
#include "http.h"
int main()
{
Http* m_http = new Http();
m_http->PrintHttp("http");
delete m_http;
return 1;
}
先生成目标文件: g++ -c http.cpp
生成静态库: ar cr libmyhttp.a http.o
这两步什么问题,都已经生成,连接后编译:
g++ -o test main.cpp -L.-lmyhttp
出现错误:/tmp/cc6cxeOn.o: In function `main':
main.cpp:(.text+0x20): undefined reference to `Http::PrintHttp(char const*)'
collect2: ld 返回 1
本人刚接触linux下的编程,请高手指点。
#ifndef __HTTP_H__
#define __HTTP_H__
#include <stdio.h>
class Http
{
public:
void InitHttp();
void CloseHttp();
int PrintHttp(const char* str);
};
#endif
cpp文件:
#include "http.h"
void Http::InitHttp()
{
}
void Http::CloseHttp()
{
}
int Http::PrintHttp(const char* str)
{
printf("%s\n",str);
return 1;
}
main.cpp
#include "http.h"
int main()
{
Http* m_http = new Http();
m_http->PrintHttp("http");
delete m_http;
return 1;
}
先生成目标文件: g++ -c http.cpp
生成静态库: ar cr libmyhttp.a http.o
这两步什么问题,都已经生成,连接后编译:
g++ -o test main.cpp -L.-lmyhttp
出现错误:/tmp/cc6cxeOn.o: In function `main':
main.cpp:(.text+0x20): undefined reference to `Http::PrintHttp(char const*)'
collect2: ld 返回 1
本人刚接触linux下的编程,请高手指点。
...全文
相关推荐
关于Linux静态库和动态库的分析
库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。本文介绍了使用库的方法,分析了动态库的路径问题,介绍了查看库中的符号的方式。
openssl静态库
libcrypto.a libssl.a 头文件 编译版本:Android ios linux mac mingw
linux下用gcc生成静态库和动态库.doc
linux下用gcc生成静态库和动态库.doclinux下用gcc生成静态库和动态库.doclinux下用gcc生成静态库和动态库.doclinux下用gcc生成静态库和动态库.doclinux下用gcc生成静态库和动态库.doclinux下用gcc生成静态库和动态库.doclinux下用gcc生成静态库和动态库.doclinux下用gcc生成静态库和动态库.doc
webrtc(M99) linux的 x64 静态库
webrtc(M99版本) 的linux 64位静态库,支持H264,使用boringssl,与openssl一起使用会起冲突。基于ubuntu20.04环境编译
liunx静态库与动态库链接装载与库.zip
liunx静态库与动态库链接装载与库.zip



