水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:主程序与库中都有main函数
6楼
|
BigCarrot
|
2023-10-14 01:28:57
|
展开
https://maskray.me/blog/2022-11-13-odr-violation-detection
【 在 rdsky 的大作中提到: 】
: 代码中有main函数,链接的一个库(静态或动态库)中也有main函数,成功生成了可执行文件,执行时执行的是代码中的main函数,而不是库中的,这个有什么规定吗?为什么链接时不报重复定义main的错呢?
: // main.cpp
: #include <iostream>
: ...................
--
FROM 107.204.171.*
8楼
|
BigCarrot
|
2023-10-14 02:47:30
|
展开
程序正确性都不能保证,还谈什么开销
【 在 z16166 的大作中提到: 】
: 有开销,默认不会检测,需要用参数显式打开。
--
FROM 107.204.171.*
13楼
|
BigCarrot
|
2023-10-14 14:52:41
|
展开
你这只是binutils linker的行为,而不是c/c++规定的行为
而ld.bfd这样做纯粹是因为最早的时候内存大小的限制io速度慢等造成的
事实上这种行为是反直觉的
Rui在实现lld的时候曾经希望改变这种缺省行为,但是依赖这种行为的代码太多了,所以没改成
【 在 z16166 的大作中提到: 】
: Linker默认按模块先后顺序查找引用到的函数,这个顺序是码农提供的,也就是码农保证
: 在库里面搞一个main(),那是属于蛋疼。即使库里的main()是测试代码,在测试完后也得注释掉。
--
FROM 107.204.171.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版