我必须构建我的项目 2 次,第一次失败,因为它无法打开库
I have to build my Project 2 times, the first time it fails, because it can't open a library
我的问题是,每次我使用 CMake 重新生成我的项目并尝试使用 VisualStudio 构建它时,都需要 2 次尝试,第一次总是失败,因为库无法打开,但已经存在。第二次构建它时,它完美无缺。
我想这是因为我让 VisualStudio 自动提取并包含该库,并且我的 CMake 文件中的某些内容顺序错误,但我真的不知道。
这是将 Asio 和 Websocket++ 包含在项目中的 CMake 代码,VS 无法打开的文件是最后一行的 Asio.lib 文件。 Websocket++ 需要 Asio 才能运行。
ADD_DEFINITIONS(-DASIO_STANDALONE )
ADD_DEFINITIONS(-D_WEBSOCKETPP_CPP11_RANDOM_DEVICE_)
ADD_DEFINITIONS(-D_WEBSOCKETPP_CPP11_TYPE_TRAITS_)
Include(ExternalProject)
ExternalProject_Add(extasio
GIT_REPOSITORY https://github.com/tobiasrau/asio.git
GIT_TAG cmake)
ExternalProject_Add(extwebsocketpp
GIT_REPOSITORY https://github.com/TobiasPiontek/websocketpp.git)
include_directories(${EXTERNAL_INSTALL_LOCATION}/include "build/extwebsocketpp-prefix/src/extwebsocketpp/install/include" "build/extasio-prefix/src/extasio/include")
target_link_libraries(Test ${CMAKE_SOURCE_DIR}/build/extasio-prefix/src/extasio/lib/asio.lib)
提前感谢您的帮助
为了确保在可执行文件之前构建ExternalProject
,您需要添加相应的依赖项:
add_dependencies(Test extasio)
同样,为了确保先构建一个ExternalProject
,请指定它们之间的依赖关系:
add_dependencies(extwebsocketpp extasio)
相关文章:
- 如果没有malloc,链表实现将失败
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 视图中的参数推导失败:take_while
- 我必须构建我的项目 2 次,第一次失败,因为它无法打开库
- dynamic_cast什么时候会因为隐藏符号而失败?
- 使用静态转换,因为动态转换失败.不好的做法?
- 链接 openGL 库失败,因为它无法打开 libgl.so ...但它就在那里
- 编译 C++ 文件失败,因为找不到"ssize_t"的定义
- CMake 在构建中失败,因为找不到 STL 库
- 对于循环执行失败,因为变量我不会递增,为什么?
- 模板构造函数在 MSVC 中失败,因为成员函数与参数类型的名称冲突
- boost::p ython:编译失败,因为复制构造函数是私有的
- 无法调试UT,因为它会导致编译失败
- C++程序的断言失败,因为删除指针
- ostream打开文件失败,因为打开的文件太多
- Emacs imenu和speedbar+语义失败,因为在c++模式下缩进
- 如何才能因为本机C++DLL失败而捕获C#AppCrash
- ifstream 失败,因为我的文件描述符用完了