Так как ваша цель - arm, и я предполагаю, что это C, не должно быть проблемой скомпилировать некоторые файлы в Windows, а затем создать ссылку на Linux. Вы подтвердили это однако? Я бы предложил сделать hello.so для Windows, связанный с hello.c:
#include <stdio.h>
void hello(void) {printf("Hello\n");}
и затем ссылка main из main.c на linux:
void hello(void);
int main(int argc, char *argv[]){ hello(); return 0; }
как минимальный тест цепочки компиляторов.
Если вы вызываете printf из кода, определенного в вашем конечном исполняемом файле (т.е. не из кода вашей общей библиотеки), вы получаете какой-либо вывод из этого?
ли
strings --print-file-name -a mylib.so final_executable | grep "string from printf in shared library"
вернуть два события?
Есть ли ссылки на printf в
readelf -a mylib.so
readelf -a final_executable