Во-первых, "переписать программу для Linux" и "выбрал gtk2(beta)" -- это независимые друг от друга действия. После этого вы по-прежнему пишете программу под Windows, но с использованием GTK. Чтобы под Windows скомпилировать приложение, которое бы запускалось в Linux нужны неимоверные усилия, проще наоборот. См.
http://wiki.lazarus.freepascal.org/Cross_compilingНо в общем, даже тестирование и исправление своей программы в Windows под тремя виджетсетами (Win32, GTK, Qt) потенциально уменьшает число багов, возникающих при последующей компиляции в Linux. Я делал это так:
1) Открываем консоль в папке <Куда установлен Lazarus>\lcl\interfaces\gtk2 (или <Lazarus>\lcl\interfaces\qt для Qt).
2) Набираем make.
3) Компилируем свою программу, получаем исполняемый файл.
4) Запускаем его, он начинает жаловаться на отсутствующие библиотеки.
5) Качаем GTK для Windows (или Qt, если компилировали под него), ищем в папке установки или zip-архиве нужные библиотеки, перекладываем их в папку своей программы до тех пор, пока программа не запустится.