allsettingsdone
@allsettingsdone

Как скомпилировать простой С++ проект для ARM в sublime text3?

Установил компилятор "GNU Tools ARM Embedded" и Make, PATH в систему добавлен, вот содержимое файла проекта st3.sublime-project:
{
	"folders":
	[
		{
			"follow_symlinks": true,
			"path": "."
		}
	],

"build_systems":
	[
		{
			"name": "ARM build",
			"cmd": ["make"],
			"working_dir": "${project_path}"
		}
	]
}


Пытаюсь скомпилировать main.cpp:
int main(void)
{
	while(1)
	{
		
	}
}


При попытке компиляции в консоли пишется:
arm-none-eabi-gcc main.cpp
[Finished in 0.4s with exit code 2]
[cmd: ['make']]
[dir: X:\st3]
c:/program files (x86)/gnu tools arm embedded/4.8 2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib\libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x2c): undefined reference to `_exit'
collect2.exe: error: ld returned 1 exit status
make: *** [all] Error 1


Использую вот такой makefile:
TARGET = arm-none-eabi-

CHIP = STM32F0XX

LDSCRIPT = STM32F030x6.ld

all:
	arm-none-eabi-gcc main.cpp


В чем может быть проблема? Я думаю что проблема в том, что компилятор не берет или не видит "startup_stm32f10x_md_vl.s".
Тут прикрепленный проектик: https://copy.com/u4vtHeATYVaweCc7
  • Вопрос задан
  • 4466 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Shetani
Попробуйте сделать как советуют тут
Ответ написан
Комментировать
GavriKos
@GavriKos
У вас не в с++-ном файле ошибка похоже. Может где то в пути русский присутствует, например.
Ответ написан
Комментировать
allsettingsdone
@allsettingsdone Автор вопроса
Shetani, да это частично помогло, но теперь при попытке сборки пишется такое:
arm-none-eabi-gcc main.cpp
c:/program files (x86)/gnu tools arm embedded/4.8 2014q2/bin/../lib/gcc/arm-none-eabi/4.8.4/../../../../arm-none-eabi/lib\libc.a(lib_a-exit.o): In function `exit':
exit.c:(.text.exit+0x2c): undefined reference to `_exit'
collect2.exe: error: ld returned 1 exit status
make: *** [all] Error 1
[Finished in 0.3s with exit code 2]


Для правильной работы проекта, я немного изменил его настройки(теперь при сборке он вызывает make, а не компилятор):
{
	"folders":
	[
		{
			"path": "."
		}
	],

	"build_systems":
	[
		{
			"name": "arm build",
			"cmd": ["make"],
			"working_dir": "${project_path}/"
		}
	],

	"settings":
	{
		"sublimeclang_options":
		[
			"-std=c++11",
			"-Wall",
			"-I${project_path}/"
		]
	}
}


И вот makefile соответственно:
all:
	arm-none-eabi-gcc main.cpp


Что можно предпринять в данном случае? (PS: никогда раньше не писал makefile и вообще работал только из IDE).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы