Ever since wireless sensor networks (WSNs) have emerged, different optimizations have been proposed to overcome their constraints. Furthermore, the proposal of new applications for WSNs have also created new challenges to be addressed. Cross-layer approaches have proven to be the most efficient optimization techniques for these problems, since they are able to take the behavior of the protocols at each layer into consideration. Thus, this survey proposes to identify the key problems of WSNs and gather available cross-layer solutions for them that have been proposed so far, in order to provide insights on the identification of open issues and provide guidelines for future proposals.