У меня есть 3 статические библиотеки, одна из них (BinaryMain) имеет функцию входа
int32_t main(int32_t arg, char** argv) { .. .. }
Я хочу создать исполняемый файл, объединив эти три статические библиотеки (BinaryMain, Binary1, Binary2)
При создании статического двоичного файла (Binary1 и Binary 2) я хочу использовать определенный файл сценария компоновщика (binary1.ld, binary2.ld), а также создавать файлы карт для каждого из них. BinaryMain имел ссылку на переменные/функции в Binary1 и Binary2, которые я подавил, используя
атрибут((слабый))
.
Но при создании статической библиотеки (Binary1 и Binary2) я получаю сообщение об ошибке
(.text.startup+0x25): неопределенная ссылка на `WinMain'
командная строка для каждого используемого статического двоичного файла
g++ -o libbinary1.a -Wl,--start-group component1.a component2.a -static -Xlinker -Map=binary1.map -Tbinary1.ld -Wl,--end-group -LTools\win-builds-64 \lib -LTools\msys_Python\Python34 -lstdc++ -lgcov -lpython34
я знаю, что основная запись находится только в libBinaryMain.a и не содержится в libbinary1.a или libbinary2.a, но как я могу сказать компоновщику прекратить поиск «WinMain» при связывании этих двух двоичных файлов.
У меня есть эквивалентная целевая сборка, где все три двоичных файла являются эльфами, один из которых содержит файл main. Я не уверен, что моя попытка создать сборку для ПК сработает с exe.
Ждем ценного предложения. Заранее спасибо Сид