Muszę zweryfikować coś, co do którego mam wątpliwości. Jeśli biblioteka współdzielona (.dll) jest napisana w C, ze standardem C99 i skompilowana pod kompilatorem. Powiedz MinGw. Z mojego doświadczenia wynika, że jest ona kompatybilna z binariami, a zatem może być użyta z dowolnego innego kompilatora. Powiedz MS Visual Studio. Mówię z mojego doświadczenia, ponieważ próbowałem tego z powodzeniem więcej niż raz. Ale muszę sprawdzić, czy to jest reguła.Crosscompiler Kompatybilność binarna w C
I dodatkowo chciałbym zapytać, czy rzeczywiście tak jest, dlaczego biblioteki napisane w C, na przykład openCV, nie dostarczają skompilowanych plików binarnych dla każdego innego systemu operacyjnego? Wiem, że oczywistym powodem byłoby ustawienie wszystkich parametrów podczas kompilacji, ale poza tym nie ma żadnego prawa?
EDYCJA: Dodaję dodatkowe pytanie, które widzę jako logiczne przedłużenie oryginału. Czy nie w ten sposób można stworzyć zamkniętą bibliotekę źródłową? Ponieważ opcja podania źródła wychodzi poza okno, jedynym rozwiązaniem jest podanie plików binarnych. W takim przypadku zapewnienie binariów dla tylu architektur, jak to możliwe, jest pożądanym rezultatem, przy czym C jest oczywistym wyborem dla najlepszego przenoszenia pomiędzy systemami i kompilatorami. Dobrze?
Bardzo interesujące pytanie. Co dziwne, nigdy tak naprawdę nie dałem tej głębokiej myśli, mimo że byłem facetem Debuggera na początku i w połowie lat 80-tych w świecie UN * X. Oczywiście najczęściej używałem tabeli symboli jako przewodnika, ale wciąż mogą być pytania o bit-packing w strukturach i przesuwanie argumentów na stosie. Zgaduję, że w tym świecie większość kodu jest/została skompilowana z jedną lub drugą wersją albo kompilatora producenta, albo GCC, więc istniała nieodłączna spójność, ale nie jest to dokładnie to, o co prosisz. –