Библиотека - это просто архив объектных модулей - чтобы пропустить main()
, она должна быть либо в отдельном объектном модуле, который вы затем просто пропускаете в сборке библиотеки, либо использовать условную компиляцию, чтобы она опускалась при время компиляции .
На самом деле, если бы main
находилось в отдельном объектном модуле, не имело бы значения, не было ли оно опущено, так как любое определение в объекте, непосредственно связанном с модулем, переопределило бы любое определение статической библиотеки,поэтому определение библиотеки будет использоваться только в том случае, если оно не будет переопределено.Я не уверен, сработает ли это, если main()
определено в модуле, содержащем другие символы, на которые есть ссылки в двоичном файле, но ничего плохого не произойдет, если вы попробуете это, кроме ошибки дублирующегося символа.