<div dir="ltr">I don't think there's any simple solution to this. You could try patching your 'compile_commands.json' to add the header files in there, but CMake won't do this automatically for you.<div>I believe the following project on GitHub tries to do something similar, but I haven't tried it myself: <a href="https://github.com/Sarcasm/compdb">https://github.com/Sarcasm/compdb</a></div><div><br></div><div><br></div><div><a class="gmail_plusreply" id="plusReplyChip-2" href="mailto:sammccall@google.com" tabindex="-1">+Sam McCall</a>, now that you're back from leave, any ideas for improving the heuristics to find proper matching .cpp files in more cases?</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 1, 2019 at 11:11 AM yus <<a href="mailto:suyu.nu@gmail.com">suyu.nu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Excuse me, is there any solution for my problem?<div>Thanks</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">yus <<a href="mailto:suyu.nu@gmail.com" target="_blank">suyu.nu@gmail.com</a>> 于2019年3月23日周六 上午9:40写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">HI,<div><br></div><div>Got it.</div><div>So my problem has no relationship with front-end vim-YoucompleteMe</div><div>I just need to wait for your solution or workaround.</div><div><br></div><div>Thanks for your help.</div><div><br></div><div>Brs,</div><div>Su Yu</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Ilya Biryukov <<a href="mailto:ibiryukov@google.com" target="_blank">ibiryukov@google.com</a>> 于2019年3月22日周五 下午8:43写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"></div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 22, 2019 at 12:41 PM yus <<a href="mailto:suyu.nu@gmail.com" target="_blank">suyu.nu@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>By the way,</div><div>If a header has no source file (*.cpp), how it been handled.</div></div></blockquote><div>In that case we would fallback to something like `clang -xc++ test.hpp`.</div><div>But that almost never happens, our heuristics will always try to pick some cpp file first.<br></div><div>E.g. in the extreme case when compile_commands.json has just a single file, we will take the compile command from that file for <b>all</b> headers we encounter.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><br></div><div>Brs,</div><div>Su Yu</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">yus <<a href="mailto:suyu.nu@gmail.com" target="_blank">suyu.nu@gmail.com</a>> 于2019年3月22日周五 下午7:37写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi,</div><div><br></div><div dir="ltr">Many thanks for your prompt answer.<div>It's an open source project.</div><div>But it's a little difficult to build. It has many dependency</div><div>Hope it can help.<br></div><div><a href="https://github.com/EOSIO/eos" target="_blank">https://github.com/EOSIO/eos</a><br></div><div><br></div><div>Thanks.</div><div><br></div><div>Brs,</div><div>Su Yu</div><div><br></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Ilya Biryukov <<a href="mailto:ibiryukov@google.com" target="_blank">ibiryukov@google.com</a>> 于2019年3月22日周五 下午5:18写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi Su,<div><br></div><div>Since compile_commands.json only contains compile commands for .cpp files, we use a heuristics-based approach to infer compile commands for headers.</div><div>More precisely, based on the path to the header file we try to guess the best .cpp file for a header (e.g. an implementation file) and pick the compile command from it.</div><div><br></div><div>In your case, we fail to guess a good compile command. I don't know of a good workaround, unfortunately.</div><div><a class="gmail_plusreply" id="gmail-m_2069525623820267518m_-449997816327468673gmail-m_-4300355639342071512gmail-m_7433235076812451419gmail-m_3408066171976145221gmail-m_3456006460747175476gmail-m_-5674883773920619418plusReplyChip-0" href="mailto:sammccall@google.com" target="_blank">+Sam McCall</a> is the author of this approach, he might have ideas on how to fix this.</div><div><br></div><div>Is the project you're working on open-source? If so, could you provide a link to the source code? If not, compilation database should also be enough to reproduce.</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 21, 2019 at 10:41 PM yus via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi,<div>I encounter an error in clangd</div><div><br></div><div><div><div>I[12:49:12.197] Updating file /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp with command<b><font color="#cc0000"> [/root/workspace/eos4/build/libraries/wasm-jit/Source/IR] </font></b>/usr/bin/clang++-4.0 -D ENABLE_SIMD_PROTOTYPE=0 -D ENABLE_THREADING_PROTOTYPE=0 -D IR_API=DLL_EXPORT -D PRETEND_32BIT_ADDRESS_SPACE=0 -D WAVM_METRICS_OUTPUT=0 -I /root/workspace/eos4/libraries/wasm-jit/Include -I /root/workspace/eos4/libraries/wasm-jit/Include/IR -Wall -Wno-invalid-partial-specialization -O3 -D NDEBUG -c -std=gnu++14 /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp -resource-dir=/root/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/7.0.0</div><div>V[12:49:12.199] Preamble for file /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp cannot be reused. Attempting to rebuild it.</div><div>V[12:49:12.238] Built preamble of size 213512 for file /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp</div><div>I[12:49:12.242] Dropped diagnostic outside main file: : too many errors emitted, stopping now</div></div></div><div><br></div><div>some other file in same folder update correctly</div><div><br></div><div><div>I[12:49:03.898] Updating file /root/workspace/eos4/libraries/chain/include/eosio/chain/resource_limits.hpp with command <font color="#cc0000"><b>[/root/workspace/eos4/build/libraries/chain] </b></font>/usr/bin/clang++-4.0 -I /root/workspace/eos4/libraries/chain/include -I /root/workspace/eos4/build/libraries/chain/include -I /root/workspace/eos4/libraries/chain/../wasm-jit/Include -I /root/workspace/eos4/libraries/chain/../../externals/binaryen/src -I /root/workspace/eos4/libraries/utilities/include -I /root/workspace/eos4/libraries/utilities/../wasm-jit/Include -I /root/workspace/eos4/libraries/fc/include -I /root/opt/boost/include -I /usr/local/include -I /root/workspace/eos4/libraries/fc/vendor/websocketpp -I /root/workspace/eos4/libraries/chainbase/include -I /root/workspace/eos4/libraries/wasm-jit/Source/Runtime/../../../chain/include -I /root/workspace/eos4/libraries/softfloat/source/include -I /root/workspace/eos4/libraries/softfloat/source/8086-SSE -I /root/workspace/eos4/libraries/softfloat/build/Linux-x86_64-GCC -I /root/workspace/eos4/libraries/builtins -I /root/workspace/eos4/libraries/builtins../softfloat/source/include -Wall -Wno-invalid-partial-specialization -O3 -D NDEBUG -c -std=gnu++14 /root/workspace/eos4/libraries/chain/include/eosio/chain/resource_limits.hpp -resource-dir=/root/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/7.0.0</div><div>V[12:49:03.901] Preamble for file /root/workspace/eos4/libraries/chain/include/eosio/chain/resource_limits.hpp cannot be reused. Attempting to rebuild it.</div><div>V[12:49:10.676] <<< {"id":"3","jsonrpc":"2.0","method":"textDocument/definition","params":{"position":{"character":51,"line":53},"textDocument":{"uri":"file:///root/workspace/eos4/libraries/chain/include/eosio/chain/resource_limits.hpp"}}}</div></div><div><br></div><div>I don't know why, and what's the difference. why the flags are different.</div><div>How to fix the problem</div><div><br></div><div><div>root@39470746ee31:~/workspace/eos4# /usr/bin/clang++-4.0 -D ENABLE_SIMD_PROTOTYPE=0 -D ENABLE_THREADING_PROTOTYPE=0 -D IR_API=DLL_EXPORT -D PRETEND_32BIT_ADDRESS_SPACE=0 -D WAVM_METRICS_OUTPUT=0 -I /root/workspace/eos4/libraries/wasm-jit/Include -I /root/workspace/eos4/libraries/wasm-jit/Include/IR -Wall -Wno-invalid-partial-specialization -O3 -D NDEBUG -c -std=gnu++14 /root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp -resource-dir=/root/.vim/bundle/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/7.0.0</div><div>/root/workspace/eos4/libraries/chain/include/eosio/chain/types.hpp:6:10: fatal error: 'eosio/chain/name.hpp' file not found</div><div>#include <eosio/chain/name.hpp></div><div>         ^~~~~~~~~~~~~~~~~~~~~~</div><div>1 error generated.</div></div><div><br></div><div>attach the error and compilation database</div><div><br></div><div>Thanks.</div><div><br></div><div>Brs</div><div>Su Yu</div><div><br></div></div></div></div></div></div>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_2069525623820267518m_-449997816327468673gmail-m_-4300355639342071512gmail-m_7433235076812451419gmail-m_3408066171976145221gmail-m_3456006460747175476gmail-m_-5674883773920619418gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Regards,</div><div>Ilya Biryukov</div></div></div></div></div>
</blockquote></div>
</blockquote></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_2069525623820267518m_-449997816327468673gmail-m_-4300355639342071512gmail-m_7433235076812451419gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Regards,</div><div>Ilya Biryukov</div></div></div></div></div></div>
</blockquote></div>
</blockquote></div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Regards,</div><div>Ilya Biryukov</div></div></div></div></div>