未找到架构x86_64 os x lion的符号 当尝试用OpenCV2.3.1编译一个简单的C++测试代码时,第三 在库中,我收到以下错误消息:

未找到架构x86_64 os x lion的符号 当尝试用OpenCV2.3.1编译一个简单的C++测试代码时,第三 在库中,我收到以下错误消息:,c++,macos,compilation,linker,cmake,C++,Macos,Compilation,Linker,Cmake,架构x86_64的未定义符号: “\u cvLoadImage”,引用自: _测试中的main.cpp.o ld:找不到架构x86_64的符号 有关信息,我使用CMake进行链接,gcc 4.2.1 i686-apple-darwin11 从Xcode 4.2获得。OpenCV是使用CMake安装的: ccmake../sourcecode 请注意,我在尝试编译SoQt时收到了类似的消息 (coin3D),在命令之后。/configure&sudo make: 。 . . “QWidget的类

架构x86_64的未定义符号:

“\u cvLoadImage”,引用自:

_测试中的main.cpp.o

ld:找不到架构x86_64的符号

有关信息,我使用CMake进行链接,gcc 4.2.1 i686-apple-darwin11 从Xcode 4.2获得。OpenCV是使用CMake安装的:

ccmake../sourcecode

请注意,我在尝试编译SoQt时收到了类似的消息 (coin3D),在命令之后。/configure&sudo make:

。 . .

“QWidget的类型信息”,引用自: SoQtThumbWheel.o中SoQtThumbWheel的类型信息 “QWidget::staticMetaObject”,引用自: SoQtThumbWheel::SoQtThumbWheel.o中的staticMetaObject

ld:找不到架构x86_64的符号

collect2:ld返回了1个退出状态

主项目的CMakeLists.txt为:

cmake_minimum_required(VERSION 2.8)    
PROJECT(TOTO )

FIND_PACKAGE(OpenCV)

INCLUDE_DIRECTORIES(${TOTO_SOURCE_DIR}/src/control)

SET(ALL_LIB_RAF  ${OPENCV_LIBRARIES}             
         Hello
          )

# FILEs to consider
ADD_SUBDIRECTORY(main) 
ADD_SUBDIRECTORY( src )
而test.cpp的CMakeLists.txt是:

ADD_EXECUTABLE(helloWorld test)
TARGET_LINK_LIBRARIES(helloWorld ${ALL_LIB_RAF} )
也许问题在于OpenCV需要以64位(?)编译。我发现了一个有趣的故事。但我想知道如何将其应用于CMake

需要帮忙吗


谢谢。

看起来您没有正确地链接库。关于stackoverflow,至少有两个类似的问题处理这个问题,即和。你看了吗?此外,请提供有关您是如何编译的更多信息。您能否编译一个简单的OpenCV测试程序,如以下程序(摘自):

#包括
#包括
int main(int argc,字符**argv)
{
cvNamedWindow(“我的窗口”,1);
IplImage*img=cvCreateImage(cvSize(640480),IPL_DEPTH_8U,1);
CvFont字体;
双hScale=1.0;
双vScale=1.0;
int线宽=1;
cvInitFont(&font,CV_font_HERSHEY_SIMPLEX,CV_font_ITALIC,
hScale、vScale、0、线宽);
cvPutText(img,“你好,世界!”),cvPoint(200400)和font,
cvScalar(255,255,0));
cvShowImage(“我的窗口”,img);
cvWaitKey();
返回0;
}

在使用cmake编译时,我意外地将单独的目标链接库()合并到我的CMakeLists.txt文件中,由此产生了此错误

具体来说,我采取了正确的做法:

target_link_libraries(
GradientComputer
)

target_link_libraries(
Overlap
PointAreaComputer
)
并将它们组合在一起以创建不正确的:

target_link_libraries(
GradientComputer
Overlap
PointAreaComputer
)

谢谢你的回复。您的代码也不会编译。我看到了两个链接。问题是我正在与CMake链接。我想我需要用64位重新编译opencv。请问你知道我们怎么用CMake做吗?例如,要指定哪些标志?我找到了这个有用的链接(),但没有找到如何将其应用于CMake@polar请在原始问题中添加更多细节。您是如何编译示例代码的?stackoverflow需要更多详细信息以帮助您。要编译和创建生成,请执行以下操作:ccmake../project source。我没有触碰任何标志。@如何使用此命令编译上面的示例?没有
CMakeLists.txt
。。。
target_link_libraries(
GradientComputer
Overlap
PointAreaComputer
)