Bem, pessoa, tudo bem com vocês? Então, sou novo aqui no fórum e resolvi perguntar porque nenhuma pesquisa no Google que eu tenha feito respondeu à minha dúvida. Antes de qualquer coisa, deixem-me falar do meu ambiente de desenvolvimento. Eu estou criando uma API em Linux para um cliente. Por determinação desse cliente (que é um grande cliente), o desenvolvimento está sendo feito em um Linux OpenSUSE 10.2 e o compilador usado é o GCC 4.1.2. Esses requisitos infelizmente eu não posso mudar. A minha API vai usar o dlopen para carregar dinâmicamente uma biblioteca. O código é o seguinte: static void * LoadModule(char *module)
{
if (module == NULL);
{
// Ele sempre entra aqui...
return (NULL);
}
return (dlopen(module, RTLD_LAZY));
}
int main(int argc, char **argv)
{
void *mod;
mod = LoadModule("libminhalib.so");
} Então, esse código falha, pois a comparação module == NULL sempre dá verdadeiro. Alguém sabe por quê? Isso sempre funcionou antes mas dessa vez não. Assim, se eu remover a comparação a biblioteca é carregada corretamente e eu posso usá-la, mas o teste deveria ter funcionado. Grato pela atenção, Scirious.