Здесь ошибка:Switched из общей библиотеки DLL, теперь получаю сообщение об ошибке, что он не может найти Pow()
symbol lookup error: ./src/libprog3.so: undefined symbol: pow
Все остальное в библиотеке работает отлично, даже функции, которые используют math.h , но когда я вызываю функцию, которая нуждается в pow(), она сработает. Он работал отлично, когда это была общая библиотека. Я использую gcc и makefile для компиляции. Единственное изменение, которое я внес в make-файл, заключалось в добавлении -ldl для библиотеки. У меня все еще есть. Я изменил программу драйвера для поддержки изменения в dll вместо общей библиотеки, но функция, вызывающая ошибку, не изменилась.
Есть ли еще файл makefile, который мне нужно изменить? Вот Makefile:
testlib: src/driver.o src/prog3.o
gcc -fPIC -Wall -c src/prog3.c -o src/prog3.o
gcc -Wall -shared -o src/libprog3.so src/prog3.o
gcc -Wall -o [email protected] src/driver.c -ldl -lm -Lsrc -lprog3
Какая платформа? –
Я использую xubuntu x64. – user1279914
Все, что вы сделали, это добавить '-ldl' в последнюю строку в примерном фрагменте файла makefile? Итак, если вы удалите '-ldl', он снова работает? Я чувствую, что нам не хватает важной информации. –