Problème compilation avec Cygwin
--Pouet--
-
ahmed -
ahmed -
Bonjour,
j'utilise actuellement Cygwin pour compiler mes programmes C, enfin j'essaie du moins... :\
J'ai téléchargé tous les packages recommandés ( make, gcc, bash, cvs, openssh, openssl, subversion... ) et ajouté le répertoire Cygwin/bin au PATH système, mais j'obtiens toujours une erreur au lancement de 'make' :
make[3]: arm-none-eabi-gcc: Command not found
J'ai épluché les forums, et les seules solutions étaient l'installation des packages gcc et make, que j'ai déjà fait :)
Merci de votre aide, j'en ai besoin..
j'utilise actuellement Cygwin pour compiler mes programmes C, enfin j'essaie du moins... :\
J'ai téléchargé tous les packages recommandés ( make, gcc, bash, cvs, openssh, openssl, subversion... ) et ajouté le répertoire Cygwin/bin au PATH système, mais j'obtiens toujours une erreur au lancement de 'make' :
make[3]: arm-none-eabi-gcc: Command not found
J'ai épluché les forums, et les seules solutions étaient l'installation des packages gcc et make, que j'ai déjà fait :)
Merci de votre aide, j'en ai besoin..
A voir également:
- Problème compilation avec Cygwin
- Cygwin - Télécharger - Édition & Programmation
- Code blocks avec compilateur - Télécharger - Langages
- Breach compilation c'est quoi - Guide
- Problème Compilation Dev-C++ - Forum C++
- Must declare a named package because this compilation unit is associated to the named module - Forum Java
7 réponses
Fait tu ta compilation dans la console cygwin ?
cygwin est-il bien dans un répertoire sans espace ?
Si tu essais de compiler directement en utilisant gcc, est-ce que ça fonctionne ?
Es tu sur qu'il n'y a pas d'erreur dans ton makefile ?
Essai de savoir ce que veux dire exactement cette erreur.
cygwin est-il bien dans un répertoire sans espace ?
Si tu essais de compiler directement en utilisant gcc, est-ce que ça fonctionne ?
Es tu sur qu'il n'y a pas d'erreur dans ton makefile ?
Essai de savoir ce que veux dire exactement cette erreur.
Dans la console, et répertoire sans espace effectivement.
Le makefile était associé à l'exemple du programme C, projet d'exemple que j'ai téléchargé sur le site officiel de la caméra que je souhaite programmer, cmucam.org.
Je vais essayer de compiler avec gcc, oui.
Le makefile était associé à l'exemple du programme C, projet d'exemple que j'ai téléchargé sur le site officiel de la caméra que je souhaite programmer, cmucam.org.
Je vais essayer de compiler avec gcc, oui.
Hum, beaucoup d'erreurs avec gcc. Mon makefile est-il nécessaire avec ce type de compilation ou seulement avec make ? Peut etre a-t il été mal construit..
le makefile ne sert qu'à make.
après un rapide coup d'oeil, il semble que arm soit relatif à la cross compilation.
Si c'est ce que tu veux faire, ok. Sinon, il y a des chance que tu ais choisi les mauvais paquets lors de ton installation.
Si tu veux seulement compiler un programme C sous Windows, essai plutôt mingw à la place de cygwin.
Essai de compiler un hello world.
Cygwin est un programme windows, donc essaye une solution windows : réinstalle tout.
après un rapide coup d'oeil, il semble que arm soit relatif à la cross compilation.
Si c'est ce que tu veux faire, ok. Sinon, il y a des chance que tu ais choisi les mauvais paquets lors de ton installation.
Si tu veux seulement compiler un programme C sous Windows, essai plutôt mingw à la place de cygwin.
Essai de compiler un hello world.
Cygwin est un programme windows, donc essaye une solution windows : réinstalle tout.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Nan jsui sur un PC au boulot ( en stage ^^ ), pas possible :\
Euh ouais tkt c'est bien ce genre de compilation que je veux, pour ça que j'ai choisi ces paquets précisément ;)
Et justement, c'est le hello world que j'essaie de compiler :s
Mais quels changements à utiliser MinGW ?
==>
J'ai réussi en téléchargeant les packages ARM à partir du web, et non pas du setup de Cygwin (:
Mais j'obtiens un : No rule to make target... Stop.
Ce n'est pas un problème de permissions, je suis en Administrateur..
Avez-vous une idée ?
Euh ouais tkt c'est bien ce genre de compilation que je veux, pour ça que j'ai choisi ces paquets précisément ;)
Et justement, c'est le hello world que j'essaie de compiler :s
Mais quels changements à utiliser MinGW ?
==>
J'ai réussi en téléchargeant les packages ARM à partir du web, et non pas du setup de Cygwin (:
Mais j'obtiens un : No rule to make target... Stop.
Ce n'est pas un problème de permissions, je suis en Administrateur..
Avez-vous une idée ?
le makefile est celui ci, qui réfère vers le suivant mis plus bas
# Makefile for a cc3 project
# C files to compile
CSOURCES=main.c
# header files
INCLUDES=
# header files
LIBS=cc3-ilp
# the name of this project
PROJECT=hello-world
# the makefile is useless without the next line!
include ../../include/common.mk
# Copyright 2006 Anthony Rowe and Adam Goode
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# set hal if not given by "hal=____"
#hal=virtual-cam
ifeq ($(strip $(hal)),)
hal=lpc2106-cmucam3
endif
INCLUDES += ../../include/cc3.h
HALDIR=../../hal/$(hal)
# include definitions (compiler, options, etc)
include $(HALDIR)/defs.mk
ifneq ($(strip $(V)),1)
VV=@
endif
OBJDIR=$(HALNAME)_buildfiles
OBJS=$(patsubst %.c, $(OBJDIR)/%.o,$(CSOURCES))
# decide if we are building a project or a lib
ifneq ($(strip $(PROJECT)),)
item=$(PROJECT)_$(HALNAME).hex
else
PROJECT=$(LIB)
item=lib$(PROJECT)_$(HALNAME).a
endif
# targets
all: $(item)
$(PROJECT)_$(HALNAME).hex: $(PROJECT)_$(HALNAME)
@echo " OBJCOPY $@"
$(VV)$(OBJCOPY) -O ihex $< $@
$(VV)$(SIZE) $<
LIBFILES=$(foreach lib,$(LIBS),../../lib/$(lib)/lib$(lib)_$(HALNAME).a)
LIBDIRS=$(foreach lib,$(LIBS),../../lib/$(lib))
LIBARGS=$(foreach lib,$(LIBS),-l$(lib)_$(HALNAME))
# the whole-archive stuff is needed, because we need to include
# the syscalls -- gc-sections will eliminate useless symbols
$(PROJECT)_$(HALNAME): $(OBJS) $(HALDIR)/$(HALLIB) $(LIBFILES)
@echo " CC $@"
$(VV)$(CC) -o $@ $(OBJS) -L$(HALDIR) \
$(foreach ldir,$(LIBDIRS),-L$(ldir)) \
$(LIBARGS) \
-Wl,-Map=$(PROJECT)_$(HALNAME).map \
-Wl,--cref \
-Wl,--gc-sections \
-Wl,-whole-archive \
-lhal-$(HALNAME) \
-Wl,-no-whole-archive \
$(LDFLAGS)
$(OBJDIR):
@echo " MKDIR $@"
mkdir $@
$(OBJS): $(OBJDIR)/%.o : %.c $(INCLUDES) | $(OBJDIR)
@echo " CC $@"
$(VV)$(CC) $(CFLAGS) $(foreach ldir,$(LIBDIRS),-I$(ldir)) -o $@ -c $<
# if LIB = something
lib$(PROJECT)_$(HALNAME).a: $(OBJS)
@echo " AR $@"
$(VV)$(AR) rs $@ $^
clean:
$(RM) *.hex
$(RM) *.map
$(RM) $(PROJECT)_$(HALNAME)
$(RM) $(PROJECT)_$(HALNAME).exe
$(RM) lib$(PROJECT)_$(HALNAME).a
$(RM) -r $(OBJDIR)
.PHONY: clean all
# Makefile for a cc3 project
# C files to compile
CSOURCES=main.c
# header files
INCLUDES=
# header files
LIBS=cc3-ilp
# the name of this project
PROJECT=hello-world
# the makefile is useless without the next line!
include ../../include/common.mk
# Copyright 2006 Anthony Rowe and Adam Goode
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# set hal if not given by "hal=____"
#hal=virtual-cam
ifeq ($(strip $(hal)),)
hal=lpc2106-cmucam3
endif
INCLUDES += ../../include/cc3.h
HALDIR=../../hal/$(hal)
# include definitions (compiler, options, etc)
include $(HALDIR)/defs.mk
ifneq ($(strip $(V)),1)
VV=@
endif
OBJDIR=$(HALNAME)_buildfiles
OBJS=$(patsubst %.c, $(OBJDIR)/%.o,$(CSOURCES))
# decide if we are building a project or a lib
ifneq ($(strip $(PROJECT)),)
item=$(PROJECT)_$(HALNAME).hex
else
PROJECT=$(LIB)
item=lib$(PROJECT)_$(HALNAME).a
endif
# targets
all: $(item)
$(PROJECT)_$(HALNAME).hex: $(PROJECT)_$(HALNAME)
@echo " OBJCOPY $@"
$(VV)$(OBJCOPY) -O ihex $< $@
$(VV)$(SIZE) $<
LIBFILES=$(foreach lib,$(LIBS),../../lib/$(lib)/lib$(lib)_$(HALNAME).a)
LIBDIRS=$(foreach lib,$(LIBS),../../lib/$(lib))
LIBARGS=$(foreach lib,$(LIBS),-l$(lib)_$(HALNAME))
# the whole-archive stuff is needed, because we need to include
# the syscalls -- gc-sections will eliminate useless symbols
$(PROJECT)_$(HALNAME): $(OBJS) $(HALDIR)/$(HALLIB) $(LIBFILES)
@echo " CC $@"
$(VV)$(CC) -o $@ $(OBJS) -L$(HALDIR) \
$(foreach ldir,$(LIBDIRS),-L$(ldir)) \
$(LIBARGS) \
-Wl,-Map=$(PROJECT)_$(HALNAME).map \
-Wl,--cref \
-Wl,--gc-sections \
-Wl,-whole-archive \
-lhal-$(HALNAME) \
-Wl,-no-whole-archive \
$(LDFLAGS)
$(OBJDIR):
@echo " MKDIR $@"
mkdir $@
$(OBJS): $(OBJDIR)/%.o : %.c $(INCLUDES) | $(OBJDIR)
@echo " CC $@"
$(VV)$(CC) $(CFLAGS) $(foreach ldir,$(LIBDIRS),-I$(ldir)) -o $@ -c $<
# if LIB = something
lib$(PROJECT)_$(HALNAME).a: $(OBJS)
@echo " AR $@"
$(VV)$(AR) rs $@ $^
clean:
$(RM) *.hex
$(RM) *.map
$(RM) $(PROJECT)_$(HALNAME)
$(RM) $(PROJECT)_$(HALNAME).exe
$(RM) lib$(PROJECT)_$(HALNAME).a
$(RM) -r $(OBJDIR)
.PHONY: clean all
Apparemment, ce serait peut etre la version du make utilisé.. M'enfin , j'ai fait la mise à jour tout à l'heure sous Cygwin donc je pense pas, au pire on peut connaitre la version du make ?