1 Laatst bewerkt door raynix (17 Dec 2015 12:27:14)

Onderwerp: OPGELOST: C code op andere machine compileren

H<all>o,

Situatie: Ik heb 2 Linux Ubuntu machines. Op de server staat een dir met C functies.
Nu wil ik de main code op de client compileren met de functies op de server.
Als alles op 1 machine staat gaat het goed.
Bv

$ gcc names.c ~/functions/inlog_func.c 

Hier wordt de functie in de functions directory meegelinkt/gecompileerd.
Maar wat als de functie op een andere machine staat? Uiteraard kan ik die met FTP op
de client zetten. Maar die stap wil ik overslaan.

Thnx

2 Laatst bewerkt door Joris (16 Dec 2015 17:31:26)

Re: OPGELOST: C code op andere machine compileren

Als beide systemen gelijk zijn qua processor en C-library's (en eventueel andere gebruikte library's) gelijk of backwards compatible zijn, kun je straffeloos alles op een systeem compileren.

Let wel op dat het ook qua operating systems gelijk moeten zijn. Als server 1 Linux is en server 2 Windows, dan kun je het beste kijken naar cross-platform compilatie. Legio goede voorbeelden en check even de manual van GCC.

En dan ga ik er vanuit dat je een simpel programmaatje hebt.

Dit niveau qua gebruik van library en aanroepen systeemomgeving.

#include<stdio.h>
main()
{
    printf("Hello World");
}

IF not THEN toch

3

Re: OPGELOST: C code op andere machine compileren

Als je op meerdere systemen een project wil uitrollen zou je eens kunnen overwegen een git repository te gaan gebruiken.
dan heb je op al je systemen de zelfde code base, en als je ergens wat wijzigd en dan heb je die wijziging in notime op de andere systemen uitgerold.

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

4 Laatst bewerkt door raynix (17 Dec 2015 12:38:19)

Re: OPGELOST: C code op andere machine compileren

Hallo

Dank voor het meedenken. Ik denk dat ik het moet zoeken in de cross-compiler hoek.
Ik heb reeds e.e.a. gevonden op het post-ARPA net. Ik had er nog nooit van gehoord...
In de manual van gcc kwam ik het niet tegen.

5

Re: OPGELOST: C code op andere machine compileren

mij zegt het ook niets terwijl ik toch wel code voor diverse CPU's compileer

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

6 Laatst bewerkt door bigred (18 Dec 2015 00:16:46)

Re: OPGELOST: C code op andere machine compileren

Kun je niet gewoon die hele directory met nfs mounten compileren binary kopiëren en dan umounten ?

7

Re: OPGELOST: C code op andere machine compileren

tis een leuk idee, maar je krijgt dan wel allerlij vervelende permissie en time stamp issues
je kan gewoon op je dev systeem een compiler voor een ander platform instaleren he
ik heb compilers voor diverse targets geinstaleerd, inmijn geval voornamelijk voor embedded toepassingen. gaat prima

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

8

Re: OPGELOST: C code op andere machine compileren

Dat zou ik ook doen. Een ontwikkelsysteem waarop je ontwikkelt en compileert. En op je draaiend systeem geen development-omgeving houden. De betere compilers, zoals uit de GCC, kunnen perfect cross-platform compileren.

Zoals Pascal ook aangaf, zijn versiebheertools zoals GIT, je grote vriend om op elk ontwikkelsysteem de juiste tools en libraries te hebben. Met grote voordeel dat je gelijk gebruik maakt van een versiebeheersysteem met al haar voordelen. Ik zou daar meer mijn tijd insteken dan hopen dat de volgende keer nog onthouden is hoe de compiler werd aangeroepen.

IF not THEN toch

9

Re: OPGELOST: C code op andere machine compileren

daar heb je dan weer makefiles voor he wink

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd

10

Re: OPGELOST: C code op andere machine compileren

pascal schreef:

daar heb je dan weer makefiles voor he wink

Uiteraard. smile
Maar je weet ook wel dat dit niet heilig is om fouten voorkomen. Ik zet mijn geld dan altijd liever op een goed test en ontwikkelomgeving en een levend systeem.

IF not THEN toch

11 Laatst bewerkt door QzZRBNMdJdsCmwx (19 Dec 2015 14:29:38)

Re: OPGELOST: C code op andere machine compileren

Joris schreef:

zijn versiebheertools zoals GIT, je grote vriend om op elk ontwikkelsysteem de juiste tools en libraries te hebben.

Git!?! Daarvoor heb je CMake of, als je last van Stockholm-syndroom hebt, autotools.

(Eventueel kun je dit soort dingen ook in Makefiles frutten, maar het nadeel van 'make' is dat het niet bijzonder portable is. BSD make != GNU make != nmake.)

12

Re: OPGELOST: C code op andere machine compileren

Daniel, embedded software is zowieso zelden heel erg portable...
ik moet al allerlij dingen doen om binnen een chipfabrikant porteerbaar te blijven, laten we zwijgen over portabiliteit naar andere fabrikanten

Pascal's Blobfree Homepage
Een dag geen NedLinux is een dag niet geleefd