Você precisa ter um arquivo chamado .ycm_extra_conf.py o diretório que contém o código-fonte dos projetos. Esse link é para o arquivo de exemplo fornecido com o plug-in e você precisa atualizá-lo para descrever corretamente suas opções de compilação.
Eu costumo criar um (ou mais) para um projeto e comprometê-los junto com o projeto em qualquer programa scm que eu esteja usando.
Algumas coisas para observar:
Se você está acostumado com o gcc, existem alguns sinalizadores de compilação que clang (o que o YCM está usando) não suportam.
Se você estiver compilando o código do kernel do linux (driver, etc), ele não funcionará bem, já que o clang não suporta muitas das macros de assembly fornecidas pelo gcc. Eu não estou ciente de uma solução alternativa.
Informações adicionais do desenvolvedor :
C-family Semantic Completion
YCM looks for a .ycm_extra_conf.py file in the directory of the opened file or in any directory above it in the hierarchy (recursively); when the file is found, it is loaded (only once!) as a Python module. YCM calls a FlagsForFile method in that module which should provide it with the information necessary to compile the current file. You can also provide a path to a global .ycm_extra_conf.py file, which will be used as a fallback. To prevent the execution of malicious code from a file you didn't write YCM will ask you once per .ycm_extra_conf.py if it is safe to load. This can be disabled and you can white-/blacklist files. See the Options section for more details.
See YCM's own .ycm_extra_conf.py for details on how this works. You should be able to use it as a starting point. Don't just copy/paste that file somewhere and expect things to magically work; your project needs different flags. Hint: just replace the strings in the flags variable with compilation flags necessary for your project. That should be enough for 99% of projects.
Se você modificou e adicionou esse arquivo ao seu projeto (ou forneceu um caminho para ele), não receberá a mesma mensagem de erro da pergunta original. Se você fizer isso, o YCM não poderá vê-lo - possivelmente chamado incorretamente (levando.) Ou não no nível correto na hierarquia de origem - veja o link acima.
Caso contrário, se ainda não estiver funcionando, você deverá ter uma mensagem de erro diferente; postar isso. A configuração inicial do YCM requer algum trabalho e fez algumas viagens pela primeira vez na documentação.