Tôi cần trợ giúp về viết mã đa nền tảng; không phải là một ứng dụng, mà là một thư viện.C++ Cross Platform Dynamic Libraries; Linux và Windows
Tôi đang tạo một thư viện tĩnh và động với hầu hết các phát triển được thực hiện trong Linux, tôi đã có thư viện tĩnh và chia sẻ được tạo trong Linux nhưng bây giờ muốn tạo phiên bản Windows của thư viện tĩnh và động trong biểu mẫu của .lib
và .dll
sử dụng cùng một mã nguồn.
Điều này có khả thi không? Tôi hơi lo lắng vì tôi nhận thấy việc tạo các tệp Windows .dll
bắt buộc bằng cách sử dụng _dllspec
hoặc một cái gì đó tương tự trong mã nguồn của bạn.
Nếu không thì bất kỳ ai cũng có thể tư vấn cho tôi giải pháp tốt nhất và nhanh nhất để lấy mã được biên dịch trên Windows. Tôi không cần phải làm việc biên dịch dưới Linux Tôi rất vui khi làm điều đó trực tiếp trong Windows. Ngoài ra tôi đang sử dụng hai thư viện bên ngoài được thúc đẩy và Xerces XML mà tôi đã cài đặt trên cả hai cửa sổ của tôi và hệ thống Linux để hy vọng họ không phải là một vấn đề.
Điều tôi thực sự muốn là có một bản sao mã nguồn duy nhất có thể được biên dịch trong cả Linux và Windows để tạo các thư viện cụ thể cho mỗi nền tảng. Tôi không thực sự quan tâm nếu tôi phải chỉnh sửa mã của tôi ủng hộ Windows hoặc Linux miễn là tôi có thể có một bản sao mã nguồn duy nhất.
Biên dịch chéo thường đề cập đến phần mềm xây dựng trên một nền tảng để chạy trên nền tảng khác. Vì bạn nói rằng bạn muốn mã nguồn có thể được biên dịch trên cả Linux và Windows, thì câu hỏi của bạn thực sự là viết về một nền tảng mã nguồn di động đa nền tảng hơn là về việc biên dịch chéo. –
GIYF Trên thực tế, trong trường hợp này, libtool là bạn của bạn ... –
Trong khi chờ đợi câu trả lời, hãy xem CMake: http://www.cmake.org/ – Pete