需要避免在需要使用链接器脚本 *.ld 文件的静态库中对"WinMain"进行未定义的引用
Need to avoid undefined reference to `WinMain' in a static library that needs to use a linker script *.ld file
我有 3 个静态库,其中一个 (BinaryMain) 具有入口函数
int32_t main(int32_t arg, char** argv) { .. .. }
我想通过组合这三个静态库(BinaryMain,Binary1,Binary2)来创建可执行文件
在创建静态二进制文件(二进制 1 和二进制 2)时,我想使用特定的链接器脚本文件(二进制 1.ld、二进制 2.ld),并为每个文件生成映射文件。BinaryMain 引用了 Binary1 和 Binary2 中的变量/函数,我使用
属性((弱))
.
但是在创建静态库(二进制 1 和二进制 2)时,我收到错误
(.text.startup+0x25):未定义对"WinMain"的引用
使用的每个静态二进制的命令行是
g++ -o libbinary1.a -Wl,--start-group component1.a component2.a -static -Xlinker -map=binary1.map -Tbinary1.ld -wl,--end-group -LTools\win-builds-64\lib -LTools\msys_Python\Python34 -lstdc++ -lgcov -lpython34
我知道主条目仅在libBinaryMain.a中,不包含在libbinary1.a或libbinary2.a中,但是我如何告诉链接器在链接这两个二进制文件时停止寻找"WinMain"。
我有一个等效的目标构建,其中所有三个二进制文件都是精灵,一个包含主文件。我不确定我创建 pc 构建的尝试是否适用于 exe。
等待一些有价值的建议。提前致谢席德
链接器认为您正在构建 GUI 应用程序而不是控制台应用程序,因此它希望WinMain
而不是main
解析入口点。 可以使用-mconsole
告诉链接器需要控制台应用程序。
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- #为""定义宏;静态";针对不同的上下文
- cmake如何在fedora工作站中找到boost静态库包
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 将公共但非静态的成员函数与ALGLIB集成
- cmake在我的项目中所需的所有静态库都不成功
- C++从另一个类访问公共静态向量的正确方法是什么
- 基于boost的程序的静态链接——zlib问题
- 在静态库中嵌入类方法
- Visual Studio Code "undefined reference to `WinMain@16'"
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 如何在C++中获得"静态纯虚拟"功能?
- 私有类型的静态常量成员
- 使用gcc从静态链接的文件中查找可选符号
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 如何在C++中使用非静态成员函数作为回调函数
- 将静态库链接到不带-fPIC的共享库中
- 静态结构和一个定义规则
- Windows 是否可以调用静态库中的 WinMain 函数C++
- 需要避免在需要使用链接器脚本 *.ld 文件的静态库中对"WinMain"进行未定义的引用