История изменений
Исправление EXL, (текущая версия) :
Да, ты прав, почему-то думал, что в глобальной области нет манглинга.
Qweqwe, засунь сишные хедеры в extern "C" { }
, например, в самом проекте или в хедере, как предложено выше.
Но если тебе нужна именно статическая библиотека на С++, без C-like интерфейса, то эта проблема просто отпадёт, переименовывай файл в *.cpp и компилируй его через g++
-враппер, как в твоём примере выше:
$ cat libMy.cpp
#include "libMy.h"
void func1()
{
;
}
$ cat libMy.h
extern void func1();
$ cat appMy.cpp
#include "libMy.h"
int main() {
func1();
}
$ g++ libMy.cpp -c -o libMy.o
$ ar cr libMy.a libMy.o
$ g++ appMy.cpp libMy.a
$ ./a.out
Исправление EXL, :
Да, ты прав, почему-то думал, что в глобальной области нет манглинга.
Qweqwe, засунь сишные хедеры в extern "C" { }
, например, в самом проекте или в хедере, как предложено выше.
Но если тебе нужна именно статическая библиотека на С++, без C-like интерфейса, то эта проблема просто отпадёт, переименовывай файл в *.cpp и компилируй его через g++
-враппер, как в твоём примере выше.
Исходная версия EXL, :
Да, ты прав, почему-то думал, что в глобальной области нет манглинга.
Qweqwe, засунь сишные хедеры в extern "C" { }
, например, в самом проект или в хедере.
Но если тебе нужна именно статическая библиотека на С++, без C-like интерфейса, то эта проблема просто отпадёт, переименовывай файл в *.cpp и компилируй его через g++
-враппер, как в твоём примере выше.