LINUX.ORG.RU

Перенос кода на C в среду qt

 , , перенос кода


3

2

Возникла задача перенести код на сишке для gcc в проект на qt (с гуями). Каким способом можно быстро и безболезненно это сделать с наименьшим количеством правок (естественно, без учёта всяких printf)?

Красиво завернуть в классы обёртки (если код годен для этого), а дальше рисовать с ним что хочешь.

erfea ★★★★★
()
Ответ на: комментарий от kamre

Система сборки какая?

gcc -std=c99 -o project project.c
Или ты о чём-то другом?

wintrolls ☆☆
() автор топика
Ответ на: комментарий от wintrolls

Ага. И даже с extern «C» {} кучу матов выдаёт.

Минимальный некомпелирующийся код в студию, что ли... У меня сишные куски в Qt'шном проекте спокойно компиляются. Глупый вопрос - все include'ы на месте?

solovey ★★
()
Ответ на: комментарий от wintrolls

Ага. И даже с extern «C» {} кучу матов выдаёт.

Код в студию :)

false ★★★★★
()
Ответ на: комментарий от solovey

Глупый вопрос - все include'ы на месте?

Да.

Минимальный некомпелирующийся код в студию

Например,

struct statfile readstat(FILE *input)
	{
	struct statfile Stat;
	void readone(num *x) { fscanf(input, "%lld ", x); }
	…
	}
В gcc проблем нет, в qt ошибка „error: a function-definition is not allowed here before ‘{’ token”.

wintrolls ☆☆
() автор топика
Ответ на: комментарий от wintrolls

этот кусок в хидере?

просто если он в .c файле, я все равно проблемы не вижу.

extern «C» в заголовочном, конпиляешь gcc project.c -o project.o и линкуешься со своим C++ кодом

Stil ★★★★★
()
Ответ на: комментарий от wintrolls

Также была проблема с тем, что структура stat в qt уже зарезервирована.

с этим забавнее, да :)

Stil ★★★★★
()
Ответ на: комментарий от vladkuzm

c/c++ уже можно определять функцию внутри другой?

Для gcc видимо можно. Но я вынес такие функции за пределы родительской, добавив передачу параметра input — и оно скомпилилось.

wintrolls ☆☆
() автор топика
Ответ на: комментарий от quiet_readonly

Через CMake можно собирать, там будет сразу правильный компилятор выбираться для C-файлов.

kamre ★★★
()

Cделать либу
вызывать функции из Qtшного кода
если правильно подчистить *.h то будет хорошее разделение графики от логики.

ihanick
()
Ответ на: комментарий от Ttt

А что, там уже свой компилятор? :)

Иногда мне кажется, что там вообще другая жизнь..загадочная и непонятная)

v9lij ★★★★★
()
Ответ на: комментарий от wintrolls

это GNUтое расширение. Убить бы тебя за такое.

anonymous
()
Ответ на: комментарий от wintrolls

Собственно, в чем смысл функции внутри функции? Или досталось по наследству? Ни разу в жизни такое не видел...

pulo
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.