我遇到了一個問題,試圖在我的Mac(Yosemite與Xcode 6)上使用CMake與Unix風格Makefiles和vim與youcompleteme插件建立一個C++項目(我是Linux老兵和Mac新手,所以我更喜歡這個設置到Xcode)。該代碼的構建和運行,但你完成我拋出一些虛假的錯誤,我認爲它不能找到<cstdint>標題。vim youcompleteme無法找到cstdint
我剛剛在Linux上嘗試過它,並且遇到同樣的問題。
我配置了.ycm_extra_conf.py來使用cake生成的compile_commands.json。在compile_commands.json的「命令」行使用這些標誌:
"command": "/usr/bin/c++ -std=c++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk -F/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks -I/usr/local/include -I/Users/tony/Dev/cow/jni -I/Users/tony/Library/Frameworks/SDL2.framework/Headers -Wall -Wextra -Wunused -F/Users/tony/Library/Frameworks -o ...
似乎沒有被明確提及有包含stdint作爲直接父任何目錄。
有沒有一種方法可以讓你完全用libclang來做它的東西,使得它可以隱式地找到目錄,這似乎在命令行上運行C++時起作用?或者,讓cmake添加一個合適的系統頭部路徑而不硬接線的最好方法是什麼?我希望我的CMakeLists.txt是可移植的,並且能夠應對工具鏈升級。
我的.ycm_extra_conf.py幾乎是提供的示例的副本,稍微修改以找到compile_commands.json放在哪裏。
您可以向我們提供您'.ycm_extra_conf.py'文件,並告訴我們一些關於你如何組織你的項目。 – ladislas
我已經將.ycm_extra_conf添加到了我原來的問題中,因爲它太長了,無法進行單獨的評論。這與插件提供的示例非常相似,我只是更改了它找到compilation_database_folder的位(並在此處粘貼之前刪除了註釋)。我認爲這是找到數據庫文件確定,因爲有一次我將final_flags轉儲到一個文件中,發現它包含了compile_commands.json中的東西,但不包含此腳本中的硬連線標誌。 – realh
我的項目佈置了兩個與此問題相關的主要子目錄。一個叫做jni(預期移植到Android)包含我所有的源文件,另一個叫做build-make,它是cmake的工作目錄。 – realh