当我执行时make,它会执行类似的操作gcc blah.o -lXtst -lX11并导致类似的错误undefined reference to XTestFakeButtonEvent.我发现了很多答案,所有人都说这是因为错误的链接顺序.使用普通时很容易改变顺序gcc,但是怎么样make?
如果CMake中的源路径或二进制路径包含字符序列"++"(不带引号),则在尝试为OpenCV 3.1创建项目时会出现CMake错误:
CMake Error at cmake/OpenCVUtils.cmake:76 (if):
if given arguments:
"G:/Desktop/C++ projects/project" "MATCHES" "^G:/Desktop/C++ projects/sources" "OR" "G:/Desktop/C++ projects/project" "MATCHES" "^G:/Desktop/C++ projects/project"
Regular expression "^G:/Desktop/C++ projects/sources" cannot compile
Call Stack (most recent call first):
CMakeLists.txt:437 (ocv_include_directories)
Run Code Online (Sandbox Code Playgroud)
显然,OpenCVUtils中的这一行会导致问题:
if("${__abs_dir}" MATCHES "^${OpenCV_SOURCE_DIR}" OR "${__abs_dir}" MATCHES "^${OpenCV_BINARY_DIR}")
我注意到了这个问题,因为我有一个名为"C++ Projects"的文件夹,我保存了C++项目和库.有谁知道,为什么序列导致问题,如果有一个快速的方法来解决这个问题?我还将此报告为OpenCV错误跟踪器中的错误.
我已经成功使用 Qt4 一段时间了。我可以使用 CMake 命令,例如QT4_WRAP_CPP、QT4_WRAP_UI等。现在我已经安装了 Qt5,但由于某种原因 Qt 无法识别我的安装。我收到此错误。
CMake Error at /example/project/dir/build_target.cmake:102 (QT5_WRAP_CPP):
Unknown CMake command "QT5_WRAP_CPP".
Run Code Online (Sandbox Code Playgroud)
我如何
我一直在努力编译OpenCV。系统是Linux Ubuntu 16.10。
不幸的是,似乎唯一正在编译的Python库绑定/模块是用于Python 2.7的库绑定/模块,该模块安装在以下位置:
/usr/local/lib/python2.7/dist-packages/cv2.so
Run Code Online (Sandbox Code Playgroud)
我需要的反而是cv2对python3.6。我已经建立了/usr/bin/python指向的链接/usr/bin/python3.6。
这是我的cmake指令:
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D BUILD_NEW_PYTHON_SUPPORT=ON \
-D INSTALL_C_EXAMPLES=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-D OPENCV_EXTRA_MODULES_PATH=/home/foobar/Downloads/opencv_contrib/modules \
..
Run Code Online (Sandbox Code Playgroud)
对可能出什么问题有任何想法吗?
我正在尝试使用 CMake 在 Debian 上编译 servermod。每个必需的软件包似乎都已安装。如果我开始编译,我会收到此错误:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
OPENSSL_CRYPTO_LIBRARIES (ADVANCED)
OPENSSL_INCLUDE_DIR (ADVANCED)
OPENSSL_SSL_LIBRARIES (ADVANCED)
Run Code Online (Sandbox Code Playgroud)
我完全不知道如何修复它。必须在哪里设置?
我正在使用CMake生成可视化工作室文件.我想将xyz.dll添加到abc.exe所在的同一文件夹中.
我曾经读过某个地方,当我手动将xyz.dll文件复制到同一个文件夹中时abc.exe,问题就解决了.但每次都不可能..我想编写CMake命令,以便找到该xyz.dll文件并复制到所在的文件夹中abc.exe.
下面提到的是.exe和.dll文件驻留在我的PC 中的路径.
${MyWorkSpace_ROOT_DIR}/algoCommon/pthread/dll/xyz.dll
${MyWorkSpace_ROOT_DIR}/xml/addAlgo/.../cmakeOut.VS12/Debug/abc.exe
Run Code Online (Sandbox Code Playgroud)
abc是我的项目,我想确认以下提到的是否错误.
add_custom_command(TARGET abc PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
"${MyWorkSpace_ROOT_DIR}/algoCommon/pthread/dll"
$<{MyWorkSpace_ROOT_DIR}/xml/addAlgo/.../cmakeOut.VS12/Debug/:abc>)
Run Code Online (Sandbox Code Playgroud)
如果这是错误的,请帮助我.如果它是正确的,那么我想问一些疑问..这个命令会自动将xyz.dll文件复制到文件夹abc.exe中驻留还是其他地方正在发生?
当我尝试编译ArangoDB 3.0时,我遇到了如下问题.
wget https://www.arangodb.com/repositories/Source/ArangoDB-3.0.0.tar.gz
tar -xvvf ArangoDB-3.0.0.tar.gz
ln -s ArangoDB-3.0.0 arangodb
OR
git clone https://github.com/arangodb/arangodb
cd arangodb
git checkout 3.0
git pull
Run Code Online (Sandbox Code Playgroud)
我已经尝试过以上二进制编译,如下所示.
cd arangodb/
mkdir -p build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
Run Code Online (Sandbox Code Playgroud)
执行cmake .. -DCMAKE_BUILD_TYPE=Release命令会给我以下错误.
-- Checking C++11 support for "regex"
CMake Error at cmake/CheckCXX11Features.cmake:129 (message):
Checking C++11 support for "regex": not supported
Call Stack (most recent call first):
cmake/CheckCXX11Features.cmake:150 (cxx11_check_feature)
CMakeLists.txt:265 (include)
-- Configuring incomplete, errors occurred!
See also "/home/ec2-user/arangodb/build/CMakeFiles/CMakeOutput.log".
Run Code Online (Sandbox Code Playgroud)
AWS Linux AMI上的操作系统版本:
Linux 4.4.11-23.53.amzn1.x86_64#1 SMP …
我正在使用一个简单的将一个项目包含到我的项目中add_subdirectory。
但是,该项目非常冗长,并且在我的构建中充满了很多信息。无需修改外部项目...是否可以删除所有(或部分)那些烦人的导入消息?
我在 GitHub 存储库上有一个特定的提交,我想从中提取补丁以应用到不同的地方,类似于我在使用git format-patch.
我很懒,或者存储库太大,我不想为了提取该补丁而获取整个存储库。
我怎样才能快速做到这一点?
我正在尝试在Windows 7上使用api.ai C ++库。(https://github.com/api-ai/libapiai)但是我无法配置该文件。
我安装了CMake和MinGW。
在构建目录中-> cmake .. -G“ MinGW Makefiles”->错误!
=== >>>错误低于<<<
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find CURL (missing: CURL_LIBRARY CURL_INCLUDE_DIR)
Call Stack (most recent call first):
C:/Program Files (x86)/CMake/share/cmake-3.4/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
C:/Program Files (x86)/CMake/share/cmake-3.4/Modules/FindCURL.cmake:61 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:45 (find_package)
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么解决。什么是curl_library?我可以在Windows 7上使用它吗?不是linux / unix等。
我正在开发一个项目,我将链接到一个本身链接的库boost 1.48.我正在寻找一种方法来指定CMakeLists.txt我希望系统找到并只使用boost 1.48库.
我无法更新其他库编译的版本,所以我无法设置最小版本号我需要一种方法来设置唯一可接受的升级版本.我找不到这样做的方法.
我尝试将Qt与CLion一起使用.我的问题是qDebug()不打印任何东西,但qInfo(),qWarning(),qCritical()和qFatal()运行良好.这是我的示例代码:
#include <QCoreApplication>
#include <QDebug>
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
qDebug() << "This will not appear";
qInfo() << "This will appear";
qWarning() << "This will appear too";
qCritical() << "This will appear too";
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
眼镜 :
我的Eclipse项目中有以下代码
#pragma once
#ifdef WIN32 // Compiler enters here !
#define M_PI 3.14159265358979323846
#else
#include <cmath>
#endif
#ifndef INFINITY
#define INFINITY FLT_MAX
#endif
inline float Radians(float deg)
{
return ((float)M_PI/180.f) * deg;
}
Run Code Online (Sandbox Code Playgroud)
问题是我从编译器得到以下错误
Luzoso.hpp:22:20: error: 'M_PI' was not declared in this scope
return ((float)M_PI/180.f) * deg;
Run Code Online (Sandbox Code Playgroud)
我不明白问题可能是什么.我使用CMake ECLIPSE CDT4 - MinGW Makefiles作为生成器构建了项目.有什么建议吗?