Почему библиотека g ++ должна ссылаться на Ubuntu, а не на Centos? - PullRequest
0 голосов
/ 23 апреля 2019

Я использую g ++ для создания библиотеки, а затем использую эту библиотеку в тестовом приложении. Библиотека без ошибок собирается как в Ubuntu, так и в Centos, и связывается с приложением в Ubuntu; однако в Centos g ++ сообщает об ошибках для каждой функции в моей библиотеке. Версии:

g++ (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)

Я знаю, что порядок библиотек важен, поэтому я поместил библиотеку после исходного файла тестового приложения, но перед необходимыми системными библиотеками:

g++ -o ./mylib_test src/mylib_test.o lib/mylib.a -lstdc++ -lcryptopp -llog4cxx -lapr-1 -laprutil-1 -lcurl -lm -lz

Вот пример функции, которая не связывает:

mylib_test.o: In function `main':
mylib_test.cpp:(.text+0x3118): undefined reference to `ReturnCodeToString(ReturnCode)'

Опять же, это компилируется и работает без ошибок в Ubuntu.

...