2009-06-12 8 views
8

Possiedo diverse librerie di software libero/open source C che sviluppo su Linux e OSX con la toolchain GNU (automake, conf, flex, bison, gcc, ...) ma occasionalmente ricevo richieste per fornire DLL Windows. Mi piacerebbe essere in grado di fornire quelli senza dover spendere un sacco di tempo e denaro con lo sviluppo di Windows Visual Studio. Ho a disposizione una macchina virtuale Windows XP e so anche che il software è portatile, perché occasionalmente ottengo patch per farlo montare su Windows.Qual è il modo migliore per creare DLL di librerie open source per gli sviluppatori di Windows da utilizzare?

Quali approcci o strumenti dovrei utilizzare? Compilazione incrociata su Linux? usando Visual Studio Express o qualcos'altro? Preferirei qualcosa che sia completamente automatizzato da un repository SVN. Non considero cygwin come una soluzione in quanto non sembra fornire ciò di cui gli sviluppatori di Windows hanno bisogno, per quanto ne capisco i problemi: il collegamento e le DLL.

risposta

4

Si può provare Mingw con MSYS, Visual Studio (espressa) con SUA (sottosistema per l'applicazione unix) o Cygwin per compilare i programmi che sono basati su automake/autoconf (./configure & & make to build under linux).

Sfortunatamente in genere il file lib creato non è compatibile con altri compilatori, quindi se si desidera che la libreria funzioni con un'applicazione sviluppata con Visual Studio, è necessario utilizzare l'approccio VSC++. Di solito un sacco di progetti GNU (controllare gnuwin32) hanno effettivamente anche script di compilazione compatibili VC, che possono essere compilati usando "nmake"

2

È possibile utilizzare MinGW o installare gli strumenti da riga di comando MSVC da Visual Studio Express.

Uno di questi può essere gestito da script della riga di comando.

Immagino che anche una croce compilata da Linux funzionerebbe, ma non ho idea di quanto sia facile (o doloroso) che potrebbe essere quello di andare avanti.

Questo breve articolo mostra una semplice cross-compilazione di un'applicazione Windows & esecuzione che app sotto Wine:

1

Il kit di sviluppo software di Windows include il compilatore C/C++ di Microsoft (riga di comando solo senza strumenti visivi) , quindi non hai nemmeno bisogno di Visual C++ Express Edition. Windows SDK è un download gratuito da Microsoft.

1

Se si utilizza http://www.cmake.org/, cmake può creare il Makefile (per Unix) e il file di progetto (per Visual Studio). Questo è quello che usa il progetto KDE.

Il compilatore di Visual Studio può essere avviato da una riga di comando di Windows con "devenv/build debug project.csproj" nel file generato cmake. Ciò richiede tuttavia un Windows (possibilmente in una VM) con un Visual Studio (potenzialmente gratuito) installato.

+0

Come ho detto, sto usando la toolchain di gnu incluso automake/conf. Non ho intenzione di passare a cmake in questo momento. – dajobe

Problemi correlati