簡體   English   中英

錯誤C3861:'__ cpuidex':使用Visual Studio 2008構建OpenCV 2.4.11時找不到標識符

[英]error C3861: '__cpuidex': identifier not found when building OpenCV 2.4.11 with Visual Studio 2008

由於OpenCV 2.4.11沒有為Visual Studio 2008 x64提供預構建的庫,因此我嘗試通過使用CMake 3.2.2生成VC9 x64項目來自己構建它們( 不成功 )。

在追蹤VC的輸出時,結果發現問題來自opencv_core 構建它時,我收到以下錯誤:

3>..\..\..\..\..\sources\modules\core\src\system.cpp(257) : error C3861: '__cpuidex': identifier not found

我如何解決這個問題,以便用VC9 x64構建OpenCV 2.4.11的庫( 最好是靜態的 )?

順便說一句,我使用的是Windows 7 Utimate SP1 x64

這是構建opencv_core時visual studio的完整輸出:

1>------ Rebuild All started: Project: ZERO_CHECK, Configuration: Debug x64 ------
1>Deleting intermediate and output files for project 'ZERO_CHECK', configuration 'Debug|x64'
1>Checking Build System
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/3rdparty/zlib/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/3rdparty/libtiff/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/3rdparty/libjpeg/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/3rdparty/libjasper/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/3rdparty/libpng/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/include/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/androidcamera/.androidcamera/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/calib3d/.calib3d/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/contrib/.contrib/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/core/.core/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/dynamicuda/.dynamicuda/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/features2d/.features2d/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/flann/.flann/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/gpu/.gpu/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/highgui/.highgui/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/imgproc/.imgproc/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/java/.java/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/legacy/.legacy/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/ml/.ml/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/nonfree/.nonfree/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/objdetect/.objdetect/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/ocl/.ocl/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/photo/.photo/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/python/.python/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/stitching/.stitching/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/superres/.superres/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/ts/.ts/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/video/.video/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/videostab/.videostab/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/viz/.viz/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/world/.world/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/core/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/flann/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/imgproc/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/highgui/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/features2d/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/calib3d/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/ml/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/video/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/legacy/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/objdetect/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/photo/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/gpu/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/nonfree/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/contrib/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/stitching/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/superres/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/ts/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/modules/videostab/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/doc/CMakeFiles/generate.stamp is up-to-date.
1>CMake does not need to re-run because C:/Users/MY_USER_NAME/Downloads/opencv/cmake_build/x64/vc9/data/CMakeFiles/generate.stamp is up-to-date.
1>Build log was saved at "file://c:\Users\MY_USER_NAME\Downloads\opencv\cmake_build\x64\vc9\ZERO_CHECK.dir\Debug\BuildLog.htm"
1>ZERO_CHECK - 0 error(s), 0 warning(s)
2>------ Rebuild All started: Project: zlib, Configuration: Debug x64 ------
2>Deleting intermediate and output files for project 'zlib', configuration 'Debug|x64'
2>Building Custom Rule C:/Users/MY_USER_NAME/Downloads/opencv/sources/3rdparty/zlib/CMakeLists.txt
2>CMake does not need to re-run because C:\Users\MY_USER_NAME\Downloads\opencv\cmake_build\x64\vc9\3rdparty\zlib\CMakeFiles\generate.stamp is up-to-date.
2>Compiling...
2>adler32.c
2>zutil.c
2>uncompr.c
2>trees.c
2>inffast.c
2>inftrees.c
2>infback.c
2>inflate.c
2>gzwrite.c
2>gzread.c
2>gzlib.c
2>gzclose.c
2>deflate.c
2>crc32.c
2>compress.c
2>Generating Code...
2>Creating library...
2>Build log was saved at "file://c:\Users\MY_USER_NAME\Downloads\opencv\cmake_build\x64\vc9\3rdparty\zlib\zlib.dir\Debug\BuildLog.htm"
2>zlib - 0 error(s), 0 warning(s)
3>------ Rebuild All started: Project: opencv_core, Configuration: Debug x64 ------
3>Deleting intermediate and output files for project 'opencv_core', configuration 'Debug|x64'
3>Building Custom Rule C:/Users/MY_USER_NAME/Downloads/opencv/sources/modules/core/CMakeLists.txt
3>CMake does not need to re-run because C:\Users\MY_USER_NAME\Downloads\opencv\cmake_build\x64\vc9\modules\core\CMakeFiles\generate.stamp is up-to-date.
3>Compiling...
3>opencv_core_pch.cpp
3>Compiling...
3>tables.cpp
3>system.cpp
3>..\..\..\..\..\sources\modules\core\src\system.cpp(257) : error C3861: '__cpuidex': identifier not found
3>stat.cpp
3>rand.cpp
3>persistence.cpp
3>parallel.cpp
3>out.cpp
3>opengl_interop_deprecated.cpp
3>opengl_interop.cpp
3>matrix.cpp
3>matop.cpp
3>matmul.cpp
3>mathfuncs.cpp
3>lapack.cpp
3>gpumat.cpp
3>gl_core_3_1.cpp
3>glob.cpp
3>dxt.cpp
3>drawing.cpp
3>datastructs.cpp
3>Generating Code...
3>Compiling...
3>copy.cpp
3>convert.cpp
3>cmdparser.cpp
3>array.cpp
3>arithm.cpp
3>alloc.cpp
3>algorithm.cpp
3>Generating Code...
3>Build log was saved at "file://c:\Users\MY_USER_NAME\Downloads\opencv\cmake_build\x64\vc9\modules\core\opencv_core.dir\Debug\BuildLog.htm"
3>opencv_core - 1 error(s), 0 warning(s)
========== Rebuild All: 2 succeeded, 1 failed, 0 skipped ==========

最后,我還為Visual Studio 2013生成了另一個項目,但這次構建成功了......

我今天遇到了同樣的問題。 我碰巧看到了谷歌的問題。

我有兩個VS 2008桌面; 我使用的前一個似乎沒問題(我會在稍后檢查出來,暫時不在手邊),但我現在使用的那個卻無法做到。

我唯一記得的是,你的VS 2008有SP1升級嗎? 如果我的內存正常,我將SP1包安裝到我以前的計算機上。 在檢查以前的設置后,我會評論或更新答案。

/ *附加信息* /

是的,請安裝SP1並再試一次! 希望你能做到!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM