CLion "Instantiating an unknown structure without reference" 但编译正常
CLion "Instantiating an unknown structure without reference" but compiles fine
我一直在尝试使用 CLion 编辑器和 MinGW 在 Windows 10(64 位)上使用 HDF5 设置我的 cmake 项目。经过大量时间尝试正确设置我的 CMakeLists 文件后,我得到了一些工作 - 代码编译,mingw32-make 或 cmake 没有错误。但是,我仍然在 CLion 中遇到带有红色下划线的错误,这些错误似乎对构建没有任何影响,但我感觉它们存在是因为我做错了什么。 (我是新手,除了 class 个 C++ 项目)
这是我的 CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(testProject)
add_definitions(-std=c++11)
set(SOURCE_FILES hdf_example.cpp)
link_libraries("C:/Program Files/HDF_Group/HDF5/1.8.16/lib/hdf5_hl_cpp-shared.lib"
"C:/Program Files/HDF_Group/HDF5/1.8.16/lib/hdf5_cpp-shared.lib"
"C:/Program Files/HDF_Group/HDF5/1.8.16/lib/hdf5-shared.lib")
add_executable (abc hdf_example.cpp)
从命令行使用 mingw32-make 或在 IDE 中编译它都会导致编译成功,我看不到任何错误或警告。
C:\Users\Me\Documents\project_name\temp-build\src\abc>mingw32-make
[ 50%] Building CXX object src/s3/CMakeFiles/abc.dir/hdf_example.cpp.obj
[100%] Linking CXX executable abc.exe
[100%] Built target abc
这是我应该关心的事情吗?还是我应该忽略它,因为一切都可以编译?
您的 IDE 和构建工具是两个 "completely" 不同的过程。如果您的代码使用 Cmake 和 MingW 编译,您无需担心。您可能已经使用与 CMakeLists 中给出的设置不同的设置配置了 IDE。您需要 link 编辑器中的 hdf5 C++ 库来解决 IDE 中的 "problems"。这只会提高可读性。
我遇到了这个问题,通过在 C 文件中将 #include <getopt.h>
放在 #include <unistd.h>
之上解决了这个问题。这可以被视为 CLion 中的错误。我为此创建了一个 issue。目前的解决方法是重新安排您的导入。
有关详细信息,您还可以阅读我关于此的问题。
Instantiating an unknown structure without a reference
我也遇到了这个错误,事实证明,在我的情况下,我实际上忘记了包含 header。使用 Emacs 会显示正确的错误信息 (Implicit instantiation of undefined template 'std::basic_ifstream<char,std::char_traits<char>>'
)(参见 Why am I getting this ifstream error?)。我不确定为什么 CLion 报错了。
我一直在尝试使用 CLion 编辑器和 MinGW 在 Windows 10(64 位)上使用 HDF5 设置我的 cmake 项目。经过大量时间尝试正确设置我的 CMakeLists 文件后,我得到了一些工作 - 代码编译,mingw32-make 或 cmake 没有错误。但是,我仍然在 CLion 中遇到带有红色下划线的错误,这些错误似乎对构建没有任何影响,但我感觉它们存在是因为我做错了什么。 (我是新手,除了 class 个 C++ 项目)
这是我的 CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(testProject)
add_definitions(-std=c++11)
set(SOURCE_FILES hdf_example.cpp)
link_libraries("C:/Program Files/HDF_Group/HDF5/1.8.16/lib/hdf5_hl_cpp-shared.lib"
"C:/Program Files/HDF_Group/HDF5/1.8.16/lib/hdf5_cpp-shared.lib"
"C:/Program Files/HDF_Group/HDF5/1.8.16/lib/hdf5-shared.lib")
add_executable (abc hdf_example.cpp)
从命令行使用 mingw32-make 或在 IDE 中编译它都会导致编译成功,我看不到任何错误或警告。
C:\Users\Me\Documents\project_name\temp-build\src\abc>mingw32-make
[ 50%] Building CXX object src/s3/CMakeFiles/abc.dir/hdf_example.cpp.obj
[100%] Linking CXX executable abc.exe
[100%] Built target abc
这是我应该关心的事情吗?还是我应该忽略它,因为一切都可以编译?
您的 IDE 和构建工具是两个 "completely" 不同的过程。如果您的代码使用 Cmake 和 MingW 编译,您无需担心。您可能已经使用与 CMakeLists 中给出的设置不同的设置配置了 IDE。您需要 link 编辑器中的 hdf5 C++ 库来解决 IDE 中的 "problems"。这只会提高可读性。
我遇到了这个问题,通过在 C 文件中将 #include <getopt.h>
放在 #include <unistd.h>
之上解决了这个问题。这可以被视为 CLion 中的错误。我为此创建了一个 issue。目前的解决方法是重新安排您的导入。
有关详细信息,您还可以阅读我关于此的问题。
Instantiating an unknown structure without a reference
我也遇到了这个错误,事实证明,在我的情况下,我实际上忘记了包含 header。使用 Emacs 会显示正确的错误信息 (Implicit instantiation of undefined template 'std::basic_ifstream<char,std::char_traits<char>>'
)(参见 Why am I getting this ifstream error?)。我不确定为什么 CLion 报错了。