2011-12-22 4 views
0

Я заметил, что в настройках компоновщика по умолчанию для проекта консоли VC++ «точка входа» остается пустой. Использование DUMPBIN на сгенерированном исполняемом я увиделЗачем нужен параметр linker/ENTRY?

entry point (004110FF) @ILT+250(_mainCRTStartup) 

Я также проверил опцию командной строки свойств проекта и нет «/ ENTRY» варианта линкера дал.

Итак, как линкер определяет точку входа сгенерированного исполняемого файла? Я могу думать о 2-х вариантов:

1) существует некоторый «#pragma комментарий (линкера "/ enty:. _mainCRTStartup") похороненных в исходном коде CRT Но я не нашел его

. 2) сам компоновщик получает эту информацию из «/ ПОДСИСТЕМЕ: CONSOLE». опция Поэтому вариант в Visual Studio будет просто перезаписать выбор, сделанный link.exe

у вас есть какие-либо идеи

+0

Извините, я нашел ответ самостоятельно. Просто делюсь тем, что я нашел: Мое второе предположение было правильным. Сам компоновщик выводит эту информацию из других заданных параметров (например,/subystem: console). См. MSDN [ссылка] (http://msdn.microsoft.com/en-us/library/f9t8842e (v = VS.100) .aspx) Таким образом, опция в свойствах проекта необходима только тогда, когда вы хотите предоставить точка входа, отличная от _mainCRTStartup. – user1111407

+0

Вы должны добавить свой комментарий в качестве ответа на свой вопрос, а затем принять его, когда система позволит вам это сделать. –

ответ

0
?

2-я догадка была правильной. Сам компоновщик выводит это информацию из других заданных настроек (например,/Подсистема: консоли). См. MSDN link. Таким образом, опция в свойствах проекта необходима только тогда, когда вы хотите указать точку входа, отличную от _mainCRTStartup.

Смежные вопросы