In Xcode 9, I need to add header files path to the Header Search Paths build setting, not User Header Search Paths.
Xcode will append User Header Search Paths to compile command as -iquote options, but append Header Search Paths as -I options. That's the key difference.