2016-05-15 2 views
1

私の問題は、次のとおりです。テンプレートベースの識別子「get」を解決できません。 Netbeansの8.1

私はポストのトピックに提示されている警告を受けています。 それは本当に不安です。 オートコンプリートは、警告が表示される横のコードでは機能しません。 標準はC++ 14に設定されています。例えば

Boxes[2].get()->setPosition(Boxes[2].get()->getPosition() + v1); 

それは私に警告を与え、私が書くしようとすると、別のBoxes[2].オートコンプリートは動作しません。

オブジェクトの宣言:

<shared_ptr<ofxBox2dRect>> Boxes; 

私はこれらのリンクを使用して、私の問題を解決しようとした:

  1. Unable to resolve identifier on netbeans
  2. “Unable to resolve identifier” , although build is successful

そして、はるかに彼らが私を助けていない。(私は等のプロジェクトをrepearsed)

私のNetBeansのバージョンは8.1で、C++プラグイン1.29.6.1はApricity OS上で作業します。

私はいくつかの研究を行いましたが、私は他の警告も受け取りました。私はそれらが私の問題に関連していると思います。

警告のリストは:私の意見では

Recursive directive #include <boost/predef/os/bsd.h> 
Analyzed user include paths and user include headers: 
/usr/include 
/usr/lib 
/usr/lib64 
/usr/share 
/usr/src 
/usr/include/gstreamer-1.0 
/usr/lib/gstreamer-1.0/include 
/usr/include/AL 
/usr/include/alsa 
/usr/include/gtk-3.0 
/usr/include/at-spi2-atk/2.0 
/usr/include/at-spi-2.0 
/usr/include/dbus-1.0 
/usr/lib/dbus-1.0/include 
/usr/include/gio-unix-2.0 
/usr/include/cairo 
/usr/include/pango-1.0 
/usr/include/atk-1.0 
/usr/include/pixman-1 
/usr/include/freetype2 
/usr/include/libpng16 
/usr/include/harfbuzz 
/usr/include/glib-2.0 
/usr/lib/glib-2.0/include 
/usr/include/libdrm 
/usr/include/gdk-pixbuf-2.0 
/home/charllie/of-workspace/libs/fmodex/include 
/home/charllie/of-workspace/libs/glfw/include 
/home/charllie/of-workspace/libs/glfw/include/GLFW 
/home/charllie/of-workspace/libs/kiss/include 
/home/charllie/of-workspace/libs/poco/include 
/home/charllie/of-workspace/libs/tess2/include 
/home/charllie/of-workspace/libs/utf8cpp/include 
/home/charllie/of-workspace/libs/utf8cpp/include/utf8 
/home/charllie/of-workspace/libs/openFrameworks 
/home/charllie/of-workspace/libs/openFrameworks/graphics 
/home/charllie/of-workspace/libs/openFrameworks/math 
/home/charllie/of-workspace/libs/openFrameworks/events 
/home/charllie/of-workspace/libs/openFrameworks/gl 
/home/charllie/of-workspace/libs/openFrameworks/communication 
/home/charllie/of-workspace/libs/openFrameworks/video 
/home/charllie/of-workspace/libs/openFrameworks/3d 
/home/charllie/of-workspace/libs/openFrameworks/utils 
/home/charllie/of-workspace/libs/openFrameworks/app 
/home/charllie/of-workspace/libs/openFrameworks/sound 
/home/charllie/of-workspace/libs/openFrameworks/types 
/home/charllie/of-workspace/libs/openFrameworksCompiled/project 
Analyzed system include paths: 
/usr/include/c++/6.1.1 
/usr/include/c++/6.1.1/x86_64-pc-linux-gnu 
/usr/include/c++/6.1.1/backward 
/usr/lib/gcc/x86_64-pc-linux-gnu/6.1.1/include 
/usr/local/include 
/usr/lib/gcc/x86_64-pc-linux-gnu/6.1.1/include-fixed 
/usr/include 
/home/charllie/of-workspace 
Include path trail to current file: 
/home/charllie/of-workspace/libs/openFrameworks/graphics/ofPath.cpp: (line 1) 
/home/charllie/of-workspace/libs/openFrameworks/graphics/ofPath.h: (line 6) 
/home/charllie/of-workspace/libs/openFrameworks/graphics/ofPolyline.h: (line 5) 
/home/charllie/of-workspace/libs/openFrameworks/types/ofRectangle.h: (line 6) 
/home/charllie/of-workspace/libs/openFrameworks/utils/ofLog.h: (line 4) 
/home/charllie/of-workspace/libs/openFrameworks/utils/ofFileUtils.h: (line 8) 
/usr/include/boost/filesystem.hpp: (line 16) 
/usr/include/boost/filesystem/path.hpp: (line 29) 
/usr/include/boost/shared_ptr.hpp: (line 17) 
/usr/include/boost/smart_ptr/shared_ptr.hpp: (line 35) 
/usr/include/boost/smart_ptr/detail/spinlock_pool.hpp: (line 25) 
/usr/include/boost/smart_ptr/detail/spinlock.hpp: (line 50) 
/usr/include/boost/smart_ptr/detail/spinlock_sync.hpp: (line 18) 
/usr/include/boost/smart_ptr/detail/yield_k.hpp: (line 28) 
/usr/include/boost/predef.h: (line 17) 
/usr/include/boost/predef/os.h: (line 18) 
/usr/include/boost/predef/os/bsd.h: (line 52) 
/usr/include/boost/predef/os/bsd/bsdi.h: (line 11) 
/usr/include/boost/predef/os/bsd.h: (line 95) 
/usr/include/boost/predef/os/bsd/dragonfly.h: (line 11) 
/usr/include/boost/predef/os/bsd.h: (line 96) 
Ctrl+Alt+Click to open include hierarchy 

この警告は最も重要である:

Library File /usr/include/boost/smart_ptr/shared_ptr.hpp 
but there is an recursion #include <boost/predef/os/bsd.h> in included /usr/include/boost/predef/os/bsd/free.h 
Use Ctrl+Alt to show analyzed paths Ctrl+Alt+Click to open file with failed include directive 

が、私は私の問題を解決しようと数時間を過ごしました。私は上記のリンクで提示されている手順を踏んだが、私の助けにはならなかった。 私は助けを見つけることを願っています。

私にとって最も重要なことは にあるが、完全に実行可能なオートコンプリートを受けます。

は私が ON オートコンプリートを持って、それがなく、この特定のケースでは、正常に動作します。

名前空間に問題があると思われたので追加してくださいusing namespace std; 私はプロジェクトを再構築、クリーニング、修復しましたが、役に立たなかったです。(あなたの助けのための

感謝;)

+0

なぜビルドにbsdヘッダーが含まれていますか? apricityはLinuxです... – perencia

+0

はい、ディストリビューションを指定するのが常に良いです。 bsdは、FileUtilsのopenframeworksに必要です。 – FieryCod

答えて

1

私は同じ問題を抱えていました。問題は、ブーストpredef/os/bsd.hヘッダです。 #ifndef BOOST_PREDEF_OS_BSD_Hガードの#elseブロックに5つのファイルが含まれています。つまり、これらの5つのファイルのいずれかにbsd.hも含まれていれば、このヘッダーファイルは再帰に対して保護されません。

私の解決策は、predef/os/bsd.hファイルを編集し、#elseブロックに再帰ガードを追加することでした。そのため、predef/os/bsd.hファイルは次のようになります:

#ifndef BOOST_PREDEF_OS_BSD_H_PREVENT_RECURSION  <-- ADD THIS 
#define BOOST_PREDEF_OS_BSD_H_PREVENT_RECURSION  <-- ADD THIS 

#include <boost/predef/os/bsd/bsdi.h> 
#include <boost/predef/os/bsd/dragonfly.h> 
#include <boost/predef/os/bsd/free.h> 
#include <boost/predef/os/bsd/open.h> 
#include <boost/predef/os/bsd/net.h> 

#endif            <-- ADD THIS 

netbeansのコードアシスタンスはうれしく、私のコードはまだリンクしてエラーなしでコンパイルします。

関連する問題