Recently Choi et al. designed the first practical wireless full-duplex system, which challenges the basic assumption in wireless communications that a radio cannot transmit and receive on the same frequency at the same time. Along this line, in this paper we study the cross-layer optimization for routing in full-duplex wireless networks, comprehensively considering various resource competitions and constraints. We first propose a collision-free full-duplex broadcast MAC and prove its necessary and sufficient conditions. We then focus on 1) the problem of how to choose routes to maximize the total profit of multiple users subject to node constraints, and 2) the problem of how to choose routes to minimize the network power consumption subject to the minimum user rate demands and node constraints. We formulate these two problems as convex programming systems. By combining Lagrangian decomposition and subgradient methods, we present distributed iterative algorithms to solve these two problems, which compute the optimized user information flow (i.e. user behavior) on the network layer and the optimized node broadcast rate (i.e. node behavior) on the MAC layer. Our algorithms allow each user and each node to adjust its own behavior individually in each iteration. We prove the convergence, and provide bounds on the amount of constraint violation, and the gap between the optimal solution and our solution in each iteration. Our work comprehensively considers various resource competitions and constraints, and provides a theoretical foundation for the future study on full-duplex wireless networks. To the best of our knowledge, this is the first work to study cross-layer optimization for full-duplex wireless networks.