The project finally came to the stage of deploying the program to a small machine. I had to say that Aix was disgusting, and a poco compilation took me 1 weeks. There is no relevant information on the Internet at all.
1. Install gcc/g++ under AIX:
Download in ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/gcc/:
gcc-4.2.0-3.aix6.1.ppc.rpm
libgcc-4.2.0-3.aix6.1.ppc.rpm
libstdcplusplus-4.2.0-3.aix6.1.ppc.rpm
libstdcplusplus-devel-4.2.0-3.aix6.1.ppc.rpm
gcc-cplusplus-4.2.0-3.aix6.1.ppc.rpm
And then install it sequentially through RPM–IVH.
2. When Poco is configure, an error will be made, prompting for patches to be installed under AIX, Patches/aix/xlc8.diff in the Poco root directory.
> CP Patches/aix/xlc8.diff./
> Patch-p0 < Xlc8.diff
Run failure, check VI xlc8.diff found this patch file is the Poco1.3 version of the time, the line number is not at all, so I follow the Xlc8.diff
File contents of a file modified a bit, fortunately the upgrade of the file is not many, and then use Diff-ur automatically generated Xlc8.diff files, some places also need
To be modified, the project duration is tense, there is no time to modify, then the modified Xlc8.diff file will be passed up.
The final step is to remove the Patches/aix directory.
3. Modify configuration options
>./configure--omit=netssl_openssl,crypto,data/odbc,data/mysql--prefix=/opt/poco--no-tests--no-samples
> gmake-s
Error, unable to find Xlc_r, check that AIX is not installed XLC IBM Editor at all. Because the charge software so give up, instead of gcc/g++ compilation.
If Aix installs XLC's small partners can try to install directly if there is any problem.
As a result of compiling with gcc/g++, the diff upgrade of the 2nd step may not be needed, here I have no test. I still use the modified file to compile.
Because the AIX configuration compilation option given by Poco is the Build/config/aix file that is placed in the root directory, check that there are XLC compilation options. So I made a reference to Linux to do a match
Set the file aix_gcc, put it in the Build/config directory, the content is: (failed many times the result of the modification, took 1 weeks!) )
#
# $Id://poco/1.6/build/config/aix_gcc#2 $
#
# AIX
#
# Make settings for Linux 2.6/GCC 4.2
#
#
#
# General Settings
#
LinkMode? = SHARED
#
# Define Tools
#
CC = ${CROSS_COMPILE}GCC
CXX = ${cross_compile}g++
LINK = $ (CXX)
LIB = ${CROSS_COMPILE}AR-CR
Ranlib = ${cross_compile}ranlib
#SHLIB = $ (CXX)-shared-wl,-soname,$ (notdir [email protected])-o [email protected]
Shlib = $ (CXX)-shared-wl,-brtl-o [email protected]
Shlibln = $ (poco_base)/build/script/shlibln
STRIP = ${cross_compile}strip
DEP = $ (poco_base)/BUILD/SCRIPT/MAKEDEPEND.GCC
SHELL = sh
RM = RM-RF
CP = CP
MKDIR = Mkdir-p
#
# Extension for Shared Libraries
#
Sharedlibext =. so.$ (target_version)
Sharedliblinkext =. So
#
# Compiler and Linker Flags
#
CFLAGS =
CFLAGS32 =
CFLAGS64 =
Cxxflags =-wall-wno-sign-compare
CXXFLAGS32 =
CXXFLAGS64 =
Linkflags =
LINKFLAGS32 =
LINKFLAGS64 =
STATICOPT_CC =
Staticopt_cxx =
Staticopt_link =-static
SHAREDOPT_CC =-fpic
Sharedopt_cxx =-fpic
#SHAREDOPT_LINK =-wl,-rpath,$ (LIBPATH)
Sharedopt_link =-wl,-brtl
DEBUGOPT_CC =-g-d_debug
Debugopt_cxx =-g-d_debug
Debugopt_link = g
RELEASEOPT_CC =-o2-dndebug
Releaseopt_cxx =-o2-dndebug
Releaseopt_link =-o2
#
# System Specific Flags
#
#SYSFLAGS =-d_xopen_source=500-d_reentrant-d_thread_safe-d_file_offset_bits=64-d_largefile64_source-dpoco_have_ Fd_epoll
Sysflags =-d_reentrant-d_thread_safe-d__powerpc__
#
# System Specific Libraries
#
Syslibs =-LPTHREAD-LDL-LRT
4. Implementation
>/configure--omit=netssl_openssl,crypto,data/odbc,data/mysql--prefix=/opt/poco--no-tests--no-samples-- config=aix_gcc
After success.
> gmake-s
Compile to data, when the file RecordSet.cpp, 382 line end problem, g++ error, paragraph errors, and then collapsed! There was no solution to the problem, because I didn't use it.
This file, so I will associate the three files removed from Poco makefile, Data/makefile modified after section:
objects = Abstractbinder abstractbinding abstractextraction abstractextractor \
Abstractpreparation abstractpreparator archivestrategy Transaction \
Bulk Connector dataexception Date dynamiclob Limit metacolumn \
Pooledsessionholder Pooledsessionimpl Position \
Range Row rowformatter \
Simplerowformatter Session sessionfactory sessionimpl \
Sessionpool Sessionpoolcontainer sqlchannel \
Statement Statementcreator Statementimpl Time
> gmake-s
Success.
Su-root
Password.
CD Poco directory
> Gmake Install
Modify permissions for the install directory. Ok!
Please specify the source of the reprint ......
AIX6.1 Installation with g++ Poco-1.6.1-all