由YouCompleteMe安装引起一系列问题

来源:互联网 发布:centos 挂载u盘 编辑:程序博客网 时间:2024/05/21 09:41
  • 不知道为什么编译安装YouCompleteMe插件后,引发一系列问题,导致系统崩溃
  • 最后找到问题所在,.ycm_extra_conf.py 配置文件时将系统有些默认文件给更改啦

.ycm_extra_conf.py配置文件, C-family, QT补全

# This file is NOT licensed under the GPLv3, which is the license for the rest# of YouCompleteMe.## Here's the license text for this file:## This is free and unencumbered software released into the public domain.## Anyone is free to copy, modify, publish, use, compile, sell, or# distribute this software, either in source code form or as a compiled# binary, for any purpose, commercial or non-commercial, and by any# means.## In jurisdictions that recognize copyright laws, the author or authors# of this software dedicate any and all copyright interest in the# software to the public domain. We make this dedication for the benefit# of the public at large and to the detriment of our heirs and# successors. We intend this dedication to be an overt act of# relinquishment in perpetuity of all present and future rights to this# software under copyright law.## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR# OTHER DEALINGS IN THE SOFTWARE.## For more information, please refer to <http://unlicense.org/>import osimport ycm_core# These are the compilation flags that will be used in case there's no# compilation database set (by default, one is not set).# CHANGE THIS LIST OF FLAGS. YES, THIS IS THE DROID YOU HAVE BEEN LOOKING FOR.flags = ['-Wall','-Wextra','-Werror','-Wno-long-long','-Wno-variadic-macros','-fexceptions','-DNDEBUG','-fPIC',# You 100% do NOT need -DUSE_CLANG_COMPLETER in your flags; only the YCM# source code needs it.'-DUSE_CLANG_COMPLETER',# THIS IS IMPORTANT! Without a "-std=<something>" flag, clang won't know which# language to use when compiling headers. So it will guess. Badly. So C++# headers will be compiled as C headers. You don't want that so ALWAYS specify# a "-std=<something>".# For a C project, you would set this to something like 'c99' instead of# 'c++11'.'-std=c++11',# ...and the same thing goes for the magic -x option which specifies the# language that the files to be compiled are written in. This is mostly# relevant for c++ headers.# For a C project, you would set this to 'c' instead of 'c++'.'-x','c++','-DQT_CORE_LIB','-DQT_GUI_LIB','-DQT_NETWORK_LIB','-DQT_QML_LIB','-DQT_QUICK_LIB','-DQT_SQL_LIB','-DQT_WIDGETS_LIB','-DQT_XML_LIB','-I', '/usr/include','-I', '/usr/include/c++/5','-I', '/usr/include/x86_64-linux-gnu','-I', '/usr/include/x86_64-linux-gnu/c++/5','-I', '/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-clang','-I', '/usr/include/x86_64-linux-gnu/qt5','-I', '/usr/include/x86_64-linux-gnu/qt5/QtConcurrent','-I', '/usr/include/x86_64-linux-gnu/qt5/QtCore','-I', '/usr/include/x86_64-linux-gnu/qt5/QtDBus','-I', '/usr/include/x86_64-linux-gnu/qt5/QtGui','-I', '/usr/include/x86_64-linux-gnu/qt5/QtHelp','-I', '/usr/include/x86_64-linux-gnu/qt5/QtMultimedia','-I', '/usr/include/x86_64-linux-gnu/qt5/QtMultimediaWidgets','-I', '/usr/include/x86_64-linux-gnu/qt5/QtNetwork','-I', '/usr/include/x86_64-linux-gnu/qt5/QtOpenGL','-I', '/usr/include/x86_64-linux-gnu/qt5/QtPlatformSupport','-I', '/usr/include/x86_64-linux-gnu/qt5/QtPositioning','-I', '/usr/include/x86_64-linux-gnu/qt5/QtScript','-I', '/usr/include/x86_64-linux-gnu/qt5/QtScriptTools','-I', '/usr/include/x86_64-linux-gnu/qt5/QtSql','-I', '/usr/include/x86_64-linux-gnu/qt5/QtSvg','-I', '/usr/include/x86_64-linux-gnu/qt5/QtTest','-I', '/usr/include/x86_64-linux-gnu/qt5/QtUiTools','-I', '/usr/include/x86_64-linux-gnu/qt5/QtV8','-I', '/usr/include/x86_64-linux-gnu/qt5/QtWebKit','-I', '/usr/include/x86_64-linux-gnu/qt5/QtWebKitWidgets','-I', '/usr/include/x86_64-linux-gnu/qt5/QtWidgets','-I', '/usr/include/x86_64-linux-gnu/qt5/QtXml','-I', '/usr/include/x86_64-linux-gnu/qt5/QtXmlPatterns']# Set this to the absolute path to the folder (NOT the file!) containing the# compile_commands.json file to use that instead of 'flags'. See here for# more details: http://clang.llvm.org/docs/JSONCompilationDatabase.html## You can get CMake to generate this file for you by adding:#   set( CMAKE_EXPORT_COMPILE_COMMANDS 1 )# to your CMakeLists.txt file.## Most projects will NOT need to set this to anything; you can just change the# 'flags' list of compilation flags. Notice that YCM itself uses that approach.compilation_database_folder = ''if os.path.exists( compilation_database_folder ):  database = ycm_core.CompilationDatabase( compilation_database_folder )else:  database = NoneSOURCE_EXTENSIONS = [ '.cpp', '.cxx', '.cc', '.c', '.m', '.mm' ]def DirectoryOfThisScript():  return os.path.dirname( os.path.abspath( __file__ ) )def IsHeaderFile( filename ):  extension = os.path.splitext( filename )[ 1 ]  return extension in [ '.h', '.hxx', '.hpp', '.hh' ]def GetCompilationInfoForFile( filename ):  # The compilation_commands.json file generated by CMake does not have entries  # for header files. So we do our best by asking the db for flags for a  # corresponding source file, if any. If one exists, the flags for that file  # should be good enough.  if IsHeaderFile( filename ):    basename = os.path.splitext( filename )[ 0 ]    for extension in SOURCE_EXTENSIONS:      replacement_file = basename + extension      if os.path.exists( replacement_file ):        compilation_info = database.GetCompilationInfoForFile(          replacement_file )        if compilation_info.compiler_flags_:          return compilation_info    return None  return database.GetCompilationInfoForFile( filename )def FlagsForFile( filename, **kwargs ):  if not database:    return {      'flags': flags,      'include_paths_relative_to_dir': DirectoryOfThisScript()    }  compilation_info = GetCompilationInfoForFile( filename )  if not compilation_info:    return None  # Bear in mind that compilation_info.compiler_flags_ does NOT return a  # python list, but a "list-like" StringVec object.  final_flags = list( compilation_info.compiler_flags_ )  # NOTE: This is just for YouCompleteMe; it's highly likely that your project  # does NOT need to remove the stdlib flag. DO NOT USE THIS IN YOUR  # ycm_extra_conf IF YOU'RE NOT 100% SURE YOU NEED IT.  try:    final_flags.remove( '-stdlib=libc++' )  except ValueError:    pass  return {    'flags': final_flags,    'include_paths_relative_to_dir': compilation_info.compiler_working_dir_  }

qmake生成Makefile时INCPATH路径错误处理

更改下列文件

/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/中:

gcc-bace.conf
更改其中QMAKE_CFLAGS_ISYSTEM = -I

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 脚磕到了很疼怎么办 破腹产4年了腰疼怎么办 蹲起之后腿疼怎么办 深蹲起跳伤腰部怎么办 蹲起膝盖有响声怎么办 腰突然不能弯了怎么办 蚂蚱吃了会过敏怎么办 孕妇能吃蚂蚱菜怎么办 孕妇吃了蚂蚁菜怎么办 白果很硬的时候怎么办 有痔疮吃了胡椒怎么办 吃紫菜多了难受怎么办 四川泡菜太酸了怎么办 孕妇吃了白花菜怎么办 怀孕吃了马扎菜怎么办 被铁钉扎伤了脚怎么办 风扇吹得肩膀疼怎么办 胳膊肌肉那块肿了怎么办 生完孩子臀部变宽怎么办 3岁宝宝肋骨外翻怎么办 胸肌正面不明显侧面看才有怎么办 小孩胸肌骨突出外翻怎么办 衣柜隔层板坏了怎么办 科三路线记不住怎么办 喂奶以后胸变小了怎么办 健身完肩膀缝疼怎么办 生过孩子胯部宽怎么办 无肩带文胸往下滑怎么办 内衣肩带老是往下滑怎么办 乳房发育一边大一边小怎么办 母猫乳房有硬块怎么办 19岁乳晕很大乳头很小怎么办 做完俯卧撑胳膊特别痛怎么办 电压低风扇转不动怎么办 小孩不配合康复锻炼怎么办 跑步机安全开关脱落怎么办 办健身卡贵了怎么办 跑步机安全锁丢了怎么办 老公的腿老是疼怎么办 跑步机钥匙丢了怎么办 跑步机磁铁丢了怎么办