дубликата вопроса: C function conflictКак использовать 2 C LIBS, которые экспортируют те же функции имена
Привет, в моем текущем проекте я должен использовать какое-то интерфейс Lib. Названия функций задаются этим интерфейсом, что делают эти функции, это выбор разработчиков. Насколько я могу судить, проект должен использовать эти функции, и когда дело доходит до компиляции, вы выбираете lib и вместе с ним функциональность. То, что я пытаюсь сделать, это использовать существующий LIB и мой LIB в то же время, окружив другой и вызвать его в мейна функции:
otherlib:
int function1 (int a) {
// do something
}
MyLib:
int function1 (int a) {
//my code here
otherlib::function1(a);
}
Проблема в том, что у меня нет доступа к другой lib, а другая lib не имеет пространств имен. Я уже пробовал
namespace old {
#include "otherlib.h"
}
а затем вызывать старую функцию старым :: function1 в моей функции. Это работает до тех пор, пока это только заголовочный файл. Lib экспортирует символ в глобальное пространство. Также что-то вроде
namespace new {
function1 (int a) {
::function1(a);
}
}
не работал. И последнее, но не менее важное: я попытался использовать ifdefs и определил here
но я не был успешным.
Любые идеи, как это решить? Заранее спасибо.
EDIT:. Я ни есть доступ к старому Lib, ни проекта оба ЛИЭС должны быть использованы в
EDIT2: по крайней мере, старый Lib статический один
Я видел это, но у меня нет доступа к проекту, в котором они будут использоваться. – DaClown