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