草庐IT

vs-cmake-examples

全部标签

c++ - cmake + sdl - 禁用 sdlmain

我正在使用cmake(winxpsp3、cmake2.8.4)将SDL与我的应用程序链接。cmake_minimum_required(VERSION2.8)find_package(SDLREQUIRED)set(srcWIN32main.cpp)include_directories(${QT_INCLUDE_DIR}${QT_QTGUI_INCLUDE_DIR}${SDL_INCLUDE_DIR})add_executable(test${src})target_link_libraries(test${SDL_LIBRARY})问题:SDL_LIBRARY包含SDLmain.l

c++ - 在 VS2010 中使用 Boost.Pool - 链接器错误

Boost.Pooldocumentation说(强调我的):TheBoostPoollibraryisaheader-onlylibrary.Thatmeansthereisno.lib,.dll,or.sotobuild;justaddtheBoostdirectorytoyourcompiler'sincludefilepath,andyoushouldbegoodtogo!但是当我尝试在VS2010SP1中编译这样的代码时:#include#include#includeintmain(){typedefstd::basic_string,boost::pool_allocat

c++ - 在 mac os x 上安装使用 cmake 构建的库

我下载了yaml-cpp源代码,生成了它的xcode项目,构建了它,但是如何安装库和它的头文件,我只想使用g++编译一个小的控制台程序,我不知道xcode是否可用项目还安装了header。有什么线索吗? 最佳答案 您的Xcode项目应该有一个安装目标。或者,根据this你可以这样做:sudoxcodebuild-targetINSTALL 关于c++-在macosx上安装使用cmake构建的库,我们在StackOverflow上找到一个类似的问题: https

CMake Error at /usr/share/cmake-3.10/Modules/CMakeFindDependencyMacro.cmake:48 (find_package):

问题:CMakeErrorat/usr/share/cmake-3.10/Modules/CMakeFindDependencyMacro.cmake:48(find_package): Foundpackageconfigurationfile:  /home/wl/anaconda3/lib/cmake/Qt5WebKit/Qt5WebKitConfig.cmake butitsetQt5WebKit_FOUNDtoFALSEsopackage"Qt5WebKit"isconsideredto beNOTFOUND. Reasongivenbypackage: Qt5WebKitcould

c++ - 绕过自动生成的赋值运算符(VS bug?)

采用以下代码:classFoo{Fooconst&operator=(Fooconst&rhs);//disallow};structBar{public:Foofoo;templateTconst&operator=(Tconst&rhs){returnrhs;}};structBaz:publicBar{usingBar::operator=;};intmain(){Bazb1,b2;b1=b2;}编译失败是因为将使用自动生成的Bar::operator=赋值运算符,它会尝试使用私有(private)的Foo::operator=。还行吧。所以我在Bar中添加了一个额外的成员:Ba

c++ - inplace_merge : What causes a complexity of N*log(N) vs. N-1?

根据关于inplace_merge的C++文档,该算法的复杂度是“如果使用内部缓冲区,则比较线性(N-1),否则为NlogN(其中N是范围[first,last)中的数字元素)”.它们所说的内部缓冲区是什么意思,是什么导致了O(N-1)与O(NlogN)的复杂性? 最佳答案 扩展其他答案:至少在libstdc++和libc++中,“内部缓冲区”是通过调用std::get_temporary_buffer提供的,STL中一个晦涩但标准的例程。此例程已在C++17中弃用,主要是因为它令人困惑且有点愚蠢。参见thisquestion有关详

c++ - CMake 生成的 DLL 和 Curiously Recurring 模板 (C++) 的不正确行为

我在Windows上遇到了CMake生成的DLL文件的令人困惑的问题。在我的库中,我使用CuriouslyRecurringTemplatePattern为某些类提供唯一的ID号://da/Attribute.h:#ifndefDA_ATTRIBUTE_H#defineDA_ATTRIBUTE_Hnamespaceda{typedefunsignedintAttributeId;classAttributeBase{public:virtualAttributeIdgetTypeId()const=0;protected:/**StaticIDcounter.Everyclasstha

c++ - 如何在 CMake 中指定链接类型?

在我的CMake脚本中,我需要为我的项目链接的不同库指定gcc的不同类型链接。众所周知,使用-Wl,-Bstatic和-Wl,-Bdynamic选项进行此类混合。但是是否可以在cmake脚本中以某种方式指定它? 最佳答案 我们使用几个宏来调整CMake在Linux/MacOSX上的首选搜索顺序,以在动态和静态链接库之间切换macro(prefer_static)if(NOTWIN32)list(REMOVE_ITEMCMAKE_FIND_LIBRARY_SUFFIXES".a")list(INSERTCMAKE_FIND_LIBRA

c++ - CMake 和 Dylib : symbol definitions

我在为dylib配置cmake时遇到了一些困难。这是我的测试:mylibfunc.cpp#includestaticintcount=0;extern"C"{intmylibfunc(){count++;returncount;}}基本测试.cpp#include#include#includetypedefint(*funcPtr)();intmain(){//Loadfirstlibraryvoid*handleA=dlopen("libmylib.dylib",RTLD_LAZY);funcPtrfunctionA=(int(*)())dlsym(handleA,"mylibfu

c++ - 在 CMake 中处理多个 FIND_PACKAGE 调用

我有一个关于CMake中的FIND_PACKAGE函数的快速问题。我有一个利用点云库(PCL)的项目。PCL依赖于Boost,我的项目也是如此。因此,在我的CMakeLists.txt顶部,我有以下内容:FIND_PACKAGE(BoostREQUIREDCOMPONENTSprogram_options)#PreserveprojectBoostrequiredlibrariesSET(Boost_PROJECT_LIBRARIES${Boost_LIBRARIES})FIND_PACKAGE(PCL1.6REQUIREDCOMPONENTScommonsearch)我的项目使用了B