mch*_*mch 12 c c++ linker visual-studio
我正在尝试使用visual studio 2005构建一个C/C++静态库.由于选择运行时库是一个编译选项,我不得不构建我的库的四个变体,一个用于运行时库的每个变体:
这些是编译器选项,而不是链接器选项.来自Linux背景,这看起来很奇怪.不同的运行时库是否有不同的调用约定?为什么不能在链接时解析不同的运行时库,即当我链接使用我的静态库的应用程序时?
C预处理器定义的一个副作用是_DLL
和_DEBUG
zdan提到的:
某些数据结构(例如STL容器和迭代器)在调试运行时的大小可能不同,可能是由于诸如_HAS_ITERATOR_DEBUGGING
和之类的功能_SECURE_SCL
.您必须使用与要链接的库二进制兼容的结构定义来编译代码.
如果混合并匹配针对不同运行时库编译的目标文件,您将收到链接器警告,如下所示:
warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3051 次 |
最近记录: |