У меня есть файл f2.cpp
// f2.cpp
#include <iostream>
void f2()
{
std::cout << "It's a call of f2 function" << std::endl;
}
Я использую cygwin с компилятором crosstool 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, dlopen, dlsym. Как мне скомпилировать main.cpp, когда у меня будет f1.so?
// main.cpp
#include <iostream>
int main()
{
f1();
return 0;
}