使用发布模式构建c++,库处于调试模式
c++ build with release mode with library in debug mode
我想知道是否在发布模式下构建项目并在调试模式下将库构建链接到它,库是否会优化?
No。如果库在调试模式下编译,则代码未优化。如果您将此库链接到您的发布库,该库仍将保持未优化状态(链接器无法重新编译该库!)请记住,一旦编译了库,二进制文件就固定了,不会再更改。
如果您在Windows上,您的调试库也将与调试运行时相链接,而发布库将与发布运行时相链接,使其不太可能由于符号冲突而完全工作。
如果库在调试模式下构建,它将不会被优化!
库代码在编译时已经完成了,所以不,它不会有优化的代码。
调试/发布代码优化在编译时完成。因为库已经编译了,所以没有,它不会有"发布"优化。
作为旁注,发布优化通常取决于开发人员(他需要将他的详细和其他辅助函数放在#ifdef DEBUG预处理器开关下)。
所以库可能已经经过了相当的优化(取决于库的实现),它只是启用了调试符号。
相关文章:
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 小字符串优化(调试与发布模式)
- 在调试模式下引发C++ "deque iterator not dereferencable"异常
- _mm256_load_ps调试模式下导致谷歌/基准测试的分段错误
- 是否有任何模式等效于虚拟模板功能?
- 代码适用于调试,但不适用于发布
- Visual Studio 发布模式阻止在调试模式下执行的代码.使用 WinHTTP 和多线程
- 自定义内存管理器在发布模式下工作正常,但在调试模式下则不然
- 使用Qt Creator在调试模式下编译一段代码
- 在调试模式下,所有程序都运行良好,但在发布模式下,我在cudaMalloc操作中出错
- 序列化模式类似于boost::序列化
- 在类声明中初始化 const 成员变量时在调试模式下出现异常
- 在调试模式下编译时qrc_resource.cpp错误
- 如何在调试模式下通过终端运行可执行的 c++?
- CMake:如何在Visual Studio环境中将依赖于模式的编译标志传递给nvcc
- 为什么我的程序仅适用于调试版本
- 在发布模式下调试的弊端
- 在发布模式下调试shell扩展
- 为什么在发布模式下调试会隐藏信息
- 发布模式和调试模式之间的编译时间差异