ubuntu下编译跨平台代码流程

(一)准备工作

安装软件,配置环境等
Ubuntu虚拟机一个
双向共享剪切板(注意安装增强工具)

(1)g++ gcc 4.8

1
2
3
4
5
sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
sudo apt-get install pentium-builder

(2)SQL-ODBC

1
sudu apt-get install unixodbc-dev

(3)SQLITE3

1
2
sudo apt-get install sqlite3
sudo apt-get install libsqlite3-dev

(4)GUID

1
sudo apt-get install uuid-dev

(5)SVN

1
sudo apt-get install subversion

(6)QT

1
2
3
sudo apt-get install qt4-dev-tools qt4-doc qt4-qtconfig qt4-demos qt4-designer
sudo apt-get install qtcreatorqt
sudo apt-get install qt5-default qtcreator

(7)OPEN GLES

1
2
3
4
sudo apt-get install build-essential
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
sudo apt-get install mesa-common-dev freeglut3-dev
sudo apt-get install libgles2-mesa-dev

(二)获取代码

保证(一)中SVN安装成功
示例:svn checkout http://xxx.x.xxx.xx:xxxx/~/zlib

需要获取的跨平台代码有
third/trunk/

tinyxml
libiconv
zlib
glm
sqlite3
otl
gsoap
triangle
freetype
lpng

core/trunk/

common
demo
mapctrl

core/trunk/lfc

utility
base
algorithm
visualization
entity
datasource
editor
dbi
co_client

core/trunk/sde/lr_sqlite

(三)编译(除了QT之外,都为makefile)

(1)third/trunk/tinyxml

1
make

(2)third/trunk/libiconv

1
2
3
$ ./configure --prefix=/usr/local
$ make
$ make install

(3)third/trunk/zlib

1
2
3
4
chmod 777 configure
./configure
make
make install

(4)third/trunk/libpng

1
2
3
4
chmod 777 configure
./configure
make
make install

(5)third/trunk/triangle

1
make

(6)third/trunk/freetype

1
make

(7)core/trunk/lfc/

utility
base
algorithm
visulization
entity
datasource
editor
dbi
co_client

1
make

(8)sde/ lr_sqlite

1
make

(9)demo/console

1
make

(10)demo/ubuntu

此为QT工程,安装QT后打开pro工程文件编译即可。

(11)demo/win

此为WINDOWS下的VS工程。

(四)常见编译错误

(1)// -fPIC

relocation R_X86_64_32S against `a local symbol’ can not be used when making a shared object; recompile with -fPIC

(2)QT:no rule to make…

代码是正常的,这个时候可以把对应的cpp从工程删掉,重新加一遍,再编译。

(五)常用命令

(1) 解压缩

tar -xvf archive_name.tar.gz
zip -r archive_name.zip directory_to_compress
unzip archive_name.zip