我正在尝试将我的项目链接到我也开发的外部库,其中也使用CMake构建.当我尝试像这样找到RelWithDebInfo或MinSizeRel时:
FIND_LIBRARY(PCM_LIBRARY_DEBUG pcm
PATHS @CMAKE_LIBRARY_OUTPUT_DIRECTORY@
@CMAKE_LIBRARY_OUTPUT_DIRECTORY@/Debug
NO_DEFAULT_PATH
)
FIND_LIBRARY(PCM_LIBRARY_RELEASE pcm
PATHS @CMAKE_LIBRARY_OUTPUT_DIRECTORY@
@CMAKE_LIBRARY_OUTPUT_DIRECTORY@/Release
@CMAKE_LIBRARY_OUTPUT_DIRECTORY@/MinSizeRel
@CMAKE_LIBRARY_OUTPUT_DIRECTORY@/RelWithDebInfo
NO_DEFAULT_PATH
)
SET(PCM_LIBRARIES debug ${PCM_LIBRARY_DEBUG} optimized ${PCM_LIBRARY_RELEASE})
Run Code Online (Sandbox Code Playgroud)
它不会搜索非Release或Debug的ather目录.我也尝试创建PCM_LIBRARY_RELWITHDEBINFO和PCM_LIBRARY_MINSIZEREL,但同样的事情发生,因为SET中只有调试和优化的前缀.任何人都知道如何链接正确的库?
我在班上有这个ifdef typedef:
#ifdef HASHMAP
typedef std::unordered_map<unsigned int, L1Entry> L1; //C++ 11 only
#else
typedef std::map<unsigned int, L1Entry> L1;
#endif
Run Code Online (Sandbox Code Playgroud)
我需要控制在创建类的新对象时使用的容器.这样做的最佳方法是什么?