Скомпилируйте библиотеку разделяемых объектов, которая тоже вызывает функцию

У меня есть файл f2.cpp

// f2.cpp
#include <iostream>

void f2()
{
    std::cout << "It's a call of f2 function" << std::endl;
}

Я использую cygwin с компилятором crossstool gcc.

g++ -fPIC -c f2.cpp
g++ -shared -o libf2.so f2.o

У меня есть файл libf2.so. Теперь я хочу вызвать функцию f2 в библиотеке f1 (тоже общий объект) libf1.so.

Это f1.cpp, и я хочу взять f1.so

// f1.cpp
#include <iostream>
void f1()
{
    std::cout << "f1 function is calling f2()..." << std::endl;
    f2();
}

Как мне скомпилировать f1.cpp? Я не хочу использовать dlclose, dlerror, dlopen, dlsym ... Наконец, я хочу использовать f1.so в main.cpp также как библиотеку общих объектов ... без использования dlclose, dlerror , длопен, длсым. Как мне скомпилировать main.cpp, если у меня будет f1.so?

// main.cpp
#include <iostream>
int main()
{
    f1();
    return 0;
}
6
задан G-71 17 November 2011 в 12:57
поделиться