Как скомпилировать .so файл в .c?
Я нашол .so файл и мне нужно скомпилировать в .c 
Чаво сделать-та? Эт типа "я нашел полкило фарша и мне надо получить обратно мясо, из которого он сделан"? Операция, обратная компиляции (а компиляция, чувак - это получение из исходного кода исполняемого модуля) - называется - внезапно - декомпиляцией. И она для .c файлов возможна в очень примитивной форме только в том случае, если в модуле "забыли" отладочную информацию. Во всех других случаях она попросту невозможна :D
В общем случае никак. Существуют некоторые декомпиляторы, например в составе IDA Pro, но они восстанавливают лишь логику работы кода, а не исходники.