I built TAO 1.6a downloaded from OCI in AIX 5.3. I was built successfully. However, I could only see .so files in $ACE_ROOT/lib. How to build it to get .a files? I have built 1.5a version and it gave me .a files. Is there any make flag? Please give ma sample.
Thank you.
TAO1.5 and older versions produce .a (archive library file) for each library. For example:
libTAO.a, libTAO_CosNaming.a, libTAO_PortableServer.a, libTAO_AnyTypeCode.a
I think why all libraries are put inside archive files is that the library names are the same as default,
"shr.o"
.The fact is all library names are the same but only the archive names are different.
For example:
But, TAO1.6 and newer versions produces libraries with different names. For example:
libTAO.so, libTAO_CosNaming.so, libTAO_PortableServer.so, libTAO_AnyTypeCode.so
And, those libraries are not put inside archive files (.a). That is why I cannot find ".a" files inside
$ACE_ROOT/lib
.If you want to create .a files for all libraries, please do the following steps. I don't know if there are more easier ways out there. If so, please share here.
In
$ACE_ROOT/lib
, all .so files are symbolic linked from their original project directories.So, find out from where. I will do
libACE.so
as example.ok, now, I know the source of the file and will go there.
create .a file and put the source inside it. usage - "ar -rv archivelibname.a sourcelibname"
and go back to $ACE_ROOT and symbolic link the .a file
That's all. But, you have to do those steps for all libraries and it is tiring.
Edit: I just did not know -brtl
Compile projects using -brtl parameter and they will work well with .so libraries.