Atualmente, estou tentando portar um aplicativo C para o AIX e estou ficando confuso. O que são arquivos .eae .so e como eles são usados na criação / execução de um aplicativo?
Atualmente, estou tentando portar um aplicativo C para o AIX e estou ficando confuso. O que são arquivos .eae .so e como eles são usados na criação / execução de um aplicativo?
Respostas:
As bibliotecas de arquivamento (.a) são vinculadas estaticamente, ou seja, quando você compila seu programa com a opção -c no gcc. Portanto, se houver alguma alteração na biblioteca, você precisará compilar e construir seu código novamente.
A vantagem do .so (objeto compartilhado) sobre a biblioteca .a é que eles estão vinculados durante o tempo de execução, ou seja, após a criação da opção .o do arquivo .o no gcc. Portanto, se houver alguma alteração no arquivo .so, você não precisará recompilar seu programa principal. Mas verifique se o seu programa principal está vinculado ao novo arquivo .so com o comando ln.
Isso ajudará você a criar os arquivos .so. http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
Espero que isto ajude.
pic
(código independente de posição)?
.a são bibliotecas estáticas. Se você usa o código armazenado dentro deles, é retirado deles e incorporado ao seu próprio binário. No Visual Studio, esses seriam arquivos .lib.
.so são bibliotecas dinâmicas. Se você usar o código armazenado dentro deles, ele não será utilizado e incorporado ao seu próprio binário. Em vez disso, é apenas referenciado, portanto o binário dependerá deles e o código do arquivo so será adicionado / carregado no tempo de execução. No Visual Studio / Windows, esses arquivos seriam .dll (com pequenos arquivos .lib contendo informações de vinculação).
.lib
arquivo pequeno para .dll
é chamado de biblioteca de importação.
Os arquivos .a geralmente são bibliotecas vinculadas estaticamente (ou arquivam com mais precisão) e
.so são bibliotecas vinculadas dinamicamente.
Para criar uma porta, você precisará do código-fonte que foi compilado para produzi-las ou de arquivos equivalentes em sua máquina AIX.
Eles são usados no estágio de vinculação. .a
os arquivos são vinculados estaticamente e os .so
arquivos são meio que vinculados, de modo que a biblioteca é necessária sempre que você executa o exe.
Você pode encontrar onde eles estão armazenados olhando para qualquer um dos diretórios lib ... /usr/lib
e /lib
possui a maioria deles, e também há a LIBRARY_PATH
variável de ambiente.
A Wikipedia é uma fonte decente para essa informação.
Para aprender sobre arquivos de biblioteca estática como .a, leia Bibliografia estática
Para aprender sobre os arquivos da biblioteca compartilhada, como. Então leia Library_ (computing) #Shared_libraries Nesta página, também há informações úteis na seção Nomenclatura de arquivos .
a
rchive e outro és
haredo
bject