Пытаюсь сделать динамическую библиотеку и бинарь, который подгружает ее при запуске и потом использует. И не могу скомпилировать бинарь.
Заголовочный файл библиотеки (lib2.h):
Код: Выделить всё
void Func2();Исходник библиотеки (lib2.cpp):
Код: Выделить всё
#include <iostream>
void Func2() {
std::cout << "Func2" << std::endl;
}Исходник бинарнка (main.cpp):
Код: Выделить всё
#include "lib2/lib2.h"
int main() {
Func2();
return 0;
}lib2.cpp и lib2.h находятся в каталоге lib2/, который лежит рядом с main.cpp
Собираю я все это вот таким скриптом:
Код: Выделить всё
#!/bin/bash
rm -rf build && mkdir build &&
g++ -Wall -c -fpic -o build/lib2.o lib2/lib2.cpp &&
g++ -shared -o liblib2.so build/lib2.o &&
rm -rf main &&
g++ -Wall -o main -L"." -llib2 main.cppИ получаю ошибку
/tmp/ccVDumoI.o: In function `main':
main.cpp:(.text+0x5): undefined reference to `Func2()'
collect2: error: ld returned 1 exit status
ЧЯДНТ?