Potrzebuję pomocy w pisaniu kodu między platformami; nie aplikacja, ale biblioteka.Dynamiczne biblioteki C++ Cross Platform; Linux i Windows
Tworzę bibliotekę zarówno statyczną jak i dynamiczną z większością prac rozwojowych wykonywanych w Linuksie, mam bibliotekę statyczną i współdzieloną wygenerowaną w Linuksie, ale teraz chciałem wygenerować wersję Windows statycznej i dynamicznej biblioteki w formie z .lib
i .dll
przy użyciu tego samego kodu źródłowego.
Czy to możliwe? Trochę się martwię, ponieważ zauważyłem wygenerowanie plików Windows .dll
wymaganych przy użyciu _dllspec
lub czegoś podobnego w kodzie źródłowym.
Jeśli nie, to ktoś może doradzić mi najlepsze i najszybsze rozwiązanie, aby mój kod został skompilowany w systemie Windows. Nie muszę robić kompilacji pod Linuksem, cieszę się, że mogę to zrobić bezpośrednio pod Windows. Używam również dwóch zewnętrznych bibliotek, które są boost i Xerces XML, które zainstalowałem zarówno w moim systemie Windows i systemie Linux, więc mam nadzieję, że nie powinny być problemem.
To, czego naprawdę chcę, to mieć jedną kopię kodu źródłowego, którą można skompilować pod Linuksem i Windows, aby wygenerować biblioteki specyficzne dla każdej platformy. Nie obchodzi mnie, że muszę edytować kod na korzyść systemu Windows lub Linux, o ile mogę mieć jedną kopię kodu źródłowego.
Kompilacja krzyżowa zazwyczaj odnosi się do oprogramowania budowlanego na jednej platformie, która ma działać na innej. Ponieważ mówisz, że chcesz kodu źródłowego, który może być skompilowany zarówno na Linuksie, jak i na Windowsie, twoje pytanie dotyczy raczej pisania przenośnej, wieloplatformowej bazy kodu źródłowego niż kompilacji skrośnej. –
GIYF Właściwie, w tym przypadku, libtool jest twoim przyjacielem ... –
Podczas czekania na odpowiedzi, sprawdź CMake: http://www.cmake.org/ – Pete