UPD: После многочасовых нервосрывов задача была решена очень тривиально. функцию close стоит переименовть на что нибудь другое, например closeWin(), в таком случае наша программа не будет переопределять эту, уже определенную функцию в подключенных библиотеках. В С++ это всё работало, видимо, именно потому что, что есть пространства имен и другие фичи по скрытию имен. Впервые на такие грабли наступаю и никому такого не пожелаю.