Страница 1 из 2
		
			
				Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 18:06:55 Seenkao
				Как компилируемой программе указать принудительно, где будет стартовать программа?
			 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 20:30:14 скалогрыз
				в той строчке кода, которая начинается с "begin" а заканчивается "end."
обычно файл с таким кодом должен начинатся с ключевого слова "program", но это не обязательно.
Но на самом деле, точка входа прикрыта RTL-ом. Потому что кроме прочего нужо же ещё и модули инициализировать.
			 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 20:59:52 Seenkao
				скалогрыз, мне интересно, когда даже указано "принудительно" - это наверно всё же должно что-то значить?
Мне надо обойти проблему: entry point(start) undefined. Usually in crt1.o for architecture x86_64
"ткнуть ему (компилятору) пальцем" где у меня начинается программа, чтоб он мне выдал конкретную ошибку в программе.
			 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 21:07:12 скалогрыз
				Seenkao писал(а):"ткнуть ему (компилятору) пальцем" где у меня начинается программа, чтоб он мне выдал конкретную ошибку в программе.
если "компилятор" дошёл до ошибки "entry point(start) undfined", то я думаю, что это проблема компоновщика (линкера).
лучше расскажи для какой системы ты компилируешь.
 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 21:08:30 Seenkao
				MacOS
			 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 21:14:54 скалогрыз
				Seenkao писал(а):MacOS
версия макОСи какая? версия компилятора какая?
 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 21:21:25 Seenkao
				MacOS High Sierra
FPC 3.2.0
Lazarus 2.0.1
x86_64-darwin-cocoa
			 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 21:30:03 скалогрыз
				попробуй такую Custom Option добавить к командной строке компилятора:
- Код: Выделить всё
- -WM10.8
 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 21:44:52 Seenkao
				Это не подошло, но натолкнуло на мысль. Скомпилировать удалось, только бесполезно, почему-то не всё скомпоновалось (надеюсь правильно написал).
файл вышел слишком малого размера... значит там не всё, ошибка при запуске.
			 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 21:49:41 скалогрыз
				спрошу, ты же устанавливал Command Line tools от Xcode ?
- Код: Выделить всё
- xcode-select --install
 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 21:55:15 Seenkao
				как Lazarus установил, следом xcode, точнее то что ты написал. Xcode был уже установлен до этого.
			 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 22:36:20 скалогрыз
				хорошо.
попробуй (из командной строки) скомпилировать и запустить
- Код: Выделить всё
- begin
 writeln('hello world');
 end.
 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 22:48:58 Seenkao
				нет, мне надо именно моё, другое всё запускается.
А это значит, что где-то компиляция криво работает. Не так как я думаю (хотя я считаю что не так как надо  

 ).
 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 22:56:20 скалогрыз
				Seenkao писал(а):нет, мне надо именно моё
технически "именно моё" это что? ... да, хотя какая разница.
берёшь запускаешь из терминала:
- Код: Выделить всё
- man ld
в мануале будет сказано как указать точку входа для компоновщика.
(гугление показывает что это "-e" параметр с последующим именем символа)
После этого, значение этого параметра тебе нужно передать через fpc. С помощью Лазаруса это делается легко. Project Options -> Compilation and Linking -> Linking
ставишь тычку в "pass options to linker" а в едите-ниже пишешь
- Код: Выделить всё
- -e mySuperStart
и вроде бы всё!
 
			
		
			
				Re: Точка входа в программу. Принудительно.
				
Добавлено: 
05.11.2020 23:07:50 Seenkao
				Благодарю, но попробую попозже.
Добавлено спустя 11 часов 55 минут 30 секунд:
Запустил, но сразу закрывается. Теперь буду искать конфликты...
Оказалось проще всего запустить вообще без параметров линковщика (в Lazarus-е).