共享指针不明确的调用/未定义的调用引用
Shared Pointer ambiguous call / undefined reference to call
我的程序在 MSVC 上编译和运行良好,但如果我在 linux 下使用英特尔编译器编译它,它突然出现链接问题:
undefined reference to Model::Model(boost::property_tree::basic_ptree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::shared_ptr<DEM::World>)
在 think/guess 中,我的问题可能与不明确的函数调用有关。出于某种原因,构造函数中的 shared_pointer 参数对内存的调用不明确,如下图所示,当我尝试导航到源代码时。:
World 对象只是一个普通对象。
我不明白为什么这个调用有歧义,如何解决。
"undefined reference" 与不明确的函数调用不同(如果您谈论的是重载函数)。这意味着包含该函数的编译单元(即 .cpp 文件)未包含在 link 中,或者某些宏或 using 命名空间已更改函数定义位置的含义使用它的地方(是的,这就像一个重载函数,但就像你不小心创建了一个重载)。
我的程序在 MSVC 上编译和运行良好,但如果我在 linux 下使用英特尔编译器编译它,它突然出现链接问题:
undefined reference to Model::Model(boost::property_tree::basic_ptree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::shared_ptr<DEM::World>)
在 think/guess 中,我的问题可能与不明确的函数调用有关。出于某种原因,构造函数中的 shared_pointer 参数对内存的调用不明确,如下图所示,当我尝试导航到源代码时。:
World 对象只是一个普通对象。
我不明白为什么这个调用有歧义,如何解决。
"undefined reference" 与不明确的函数调用不同(如果您谈论的是重载函数)。这意味着包含该函数的编译单元(即 .cpp 文件)未包含在 link 中,或者某些宏或 using 命名空间已更改函数定义位置的含义使用它的地方(是的,这就像一个重载函数,但就像你不小心创建了一个重载)。