Ubuntu下编译基于libpoco工程详解
来源:互联网 发布:linux 字符串连接 编辑:程序博客网 时间:2024/05/16 15:05
最近尝试着把macosx下的codelite工程移植到linux下运行,系统选择的是ubuntu12.04(64位),以下为详细过程:
1. 安装codelite,执行apt-get install codelite,该步骤将安装codelite,gnu gcc/g++编译器,gdb调试器。
2. 安装make工具 ,执行apt-get install make
3. 安装mysql社区服务器版本及workbench
4. 因为工程是基于libpoco库,为了保持链接库统一,就不用apt自带的libpoco开发库了,到官网下载poco-all源码版本.
解压,因为我用的是静态库,在终端命令行下跳到压缩根目录,执行./configure -static --omit=Data/ODBC;sudo make -s -j4;
5. 前期工作差不多好了,直接用codelite打开workspace,编译整个workspace,出现第一个错误:
`a local symbol' can not be used when making a shared object; recompile with -fPIC, 字面上意思是符号导出有问题,用-fPIC参数重编译。
这种情况大多出现在64位系统,在编译参数项加上-fPIC,该错误解决。
6. 第二个错误其实是一堆错误,核心都是提示poco静态链接库内引用无效,这不应该啊,我都强制加到link library里面了,google之,
居然没有人碰到,或者是这个问题太简单了?只能把所有链接库全部去掉,一个一个往上加,加一个编译一次,终于发现一个自己犯了一个白痴的问题,
静态链接库在 -o时候是有顺序的,后面就简单了,按照poco各项目依赖关系,调整顺序后,该错误解决。
7.第三个错误提示dlopen 错误,这个比较常见,在link option中加上-ldl就ok了
8. 第四个提示pthead错误,在link option中加上-lpthread或者引入动态链接库lpthread.so,如果引入静态库lpthread.a会出现些乱七八糟的问题,主要原因是相互依赖的链接库,静态库和动态库同时引入造成的冲突。
9. 终于只剩下一个错误了,提示msyql不支持compress,在link option中加上-lz就好了。
运行编译好的执行文件,一切都很完美,bty个人比较喜欢codelite,简单而有效。
- Ubuntu下编译基于libpoco工程详解
- libpoco在mac平台编译详解
- Ubuntu系统下为Android工程交叉编译基于源码的OpenSSL库
- Ubuntu下编译USRP FPGA工程方法
- Linux下./configure错误详解 基于ubuntu
- ubuntu环境下编译内核详解
- ubuntu环境下编译内核详解
- ubuntu环境下编译内核详解
- ubuntu环境下编译内核详解
- ubuntu环境下编译内核详解
- ubuntu环境下编译内核详解(转载)
- ubuntu下编译c程序的详解
- ubuntu环境下编译内核详解
- Ubuntu下编译C程序的详解
- Ubuntu 下用 Eclipse 编译调试 Android NDK 工程
- Ubuntu 下用 Eclipse 编译调试 Android NDK 工程
- Ubuntu 下用 Eclipse 编译调试 Android NDK 工程
- ubuntu下使用java、javac命令行编译工程
- Apache中的默认编码
- Swift中文教程(一)基础数据类型
- 15.7 擦除的神秘之处
- 静谧、雅致时的你,是一页传奇的诗行
- phpcmsv9后台登录部分
- Ubuntu下编译基于libpoco工程详解
- MySQL学习笔记之三 表类型
- curl常用操作集锦
- Java实现仿百度文库文档在线阅读
- Swift中文教程(二)基本运算符
- How to add two multidimensional array in ruby
- 阿里巴巴、亚马逊线上开战 紧盯马来西亚商场
- Java Thread join() 的用法
- Swift中文教程(三) 字符串和字符