Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ g++;ld:找不到架构x86_64的符号_C++_Opencv_Gcc - Fatal编程技术网

C++ g++;ld:找不到架构x86_64的符号

C++ g++;ld:找不到架构x86_64的符号,c++,opencv,gcc,C++,Opencv,Gcc,我在试着编辑山姆·黑尔的 我使用的是mac OSX10.9、opencv 2.4.6和Eigen 2.0.17 Eigen和opencv头存储在/opt/local/include中,而opencv dylib存储在/opt/local/lib中 我修改了兔子的Makefile来处理这个文件夹。在终端上键入make时: g++ -L/opt/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc src/Config.o src/Fea

我在试着编辑山姆·黑尔的

我使用的是mac OSX10.9、opencv 2.4.6和Eigen 2.0.17

Eigen和opencv头存储在/opt/local/include中,而opencv dylib存储在/opt/local/lib中

我修改了兔子的Makefile来处理这个文件夹。在终端上键入make时:

g++ -L/opt/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc src/Config.o src/Features.o src/HaarFeature.o src/HaarFeatures.o src/HistogramFeatures.o src/ImageRep.o src/LaRank.o src/MultiFeatures.o src/RawFeatures.o src/Sampler.o src/Tracker.o src/main.o src/GraphUtils/GraphUtils.o -o struck
我发现以下错误:

Undefined symbols for architecture x86_64:  
"cv::namedWindow(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&,
int)", referenced from:
      _main in main.o   "cv::split(cv::Mat const&, std::__1::vector<cv::Mat, std::__1::allocator<cv::Mat> >&)",
referenced from:
      ImageRep::ImageRep(cv::Mat const&, bool, bool, bool) in ImageRep.o   "cv::imread(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&,
int)", referenced from:
      _main in main.o   "cv::imshow(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&,
cv::_InputArray const&)", referenced from:
      LaRank::Debug() in LaRank.o
      Tracker::Debug() in Tracker.o
      _main in main.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see
invocation)
架构x86_64的未定义符号: “cv::namedWindow(标准::_1::基本字符串常量&”, int)”,引用自: _main.o中的main“cv::split(cv::Mat const&,std::_1::vector&)”, 引用自: ImageRep::ImageRep(cv::Mat const&,bool,bool,bool)在ImageRep.o“cv::imread(std::u 1::basic_string const&, int)”,引用自: _main.o“cv::imshow(std::u 1::basic_string const&, cv::_inputarrayconst&“,引用自: LaRank.o中的LaRank::Debug() Tracker.o中的Tracker::Debug() _main in main.o ld:未找到架构x86_64的符号clang:错误:链接器命令失败,退出代码为1(使用-v查看 调用)
有什么想法吗?谢谢

终于解决了我的问题


< >我在XCODER中创建了一个新的项目,其中包含了源代码,并将C++标准库从默认的LBC+++改为LIbSTDc++,如In和.P/>

,在我试图从两个不同的对象文件(main .o和Addio.O)中执行一个类似的警告/错误/失败时,我也遇到了类似的警告/错误/失败。我正在使用命令:

gcc-o exec main.o add.o

< >但是我的程序是C++程序。使用
g++
编译器解决了我的问题:

g++-o exec main.o add.o


我一直认为,
gcc
可以自己解决这些问题。显然不是。我希望这有助于其他人搜索此错误。

我在.h文件中编写了我的去极化

class String
{
    String (const char * cstr = 0);
}; 
我在另一个.cpp文件中使用了inline(实现)

然后我使用g++得到以下结果: 架构x86_64的未定义符号: “字符串::字符串(字符常量*)”,引用自: _测试中的主管道-d389f3.o ld:找不到架构x86_64的符号


解决方案:当去极化和实现是独立的时,不要写内联的。

32位和64位库之间存在冲突。好的,实际上我不知道如何解决。有什么提示吗?您需要检查链接在一起的所有库,无论它们是32位还是64位。如果你不知道从哪里得到它们,我不知道怎么做。在我的例子中,在框架中添加'libc++.dylib'解决了这个问题。希望这对某些人有所帮助我也是这样假设的:“我一直认为gcc可以自己解决这些问题。”
inline String::String(const char * cstr)
{
//code ... 
}