gpt4 book ai didi

c++ - Premake 生成的解决方案不会在 Release 中编译,但会在 Debug 中编译

转载 作者:太空宇宙 更新时间:2023-11-04 13:17:34 29 4
gpt4 key购买 nike

我在 Premake 中设置了一个项目它由一个 SharedLib 和一个链接到该 SharedLibConsoleApp 组成。此外,SharedLib 链接到 SFML二进制文件。
我之前设置成功:
- 包含 ConsoleApp 和它链接到的 SharedLib 的预制项目
- 包含链接到 SFML 二进制文件的 ConsoleApp 的预制项目
但是将两者结合起来在 releasebuild

中是行不通的

这是 MSVC 2012 生成的输出:

2>  main.cpp
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall sf::RenderWindow::RenderWindow(void)" (__imp_??0RenderWindow@sf@@QAE@XZ) referenced in function _main
2>main.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual __thiscall sf::RenderWindow::~RenderWindow(void)" (__imp_??1RenderWindow@sf@@UAE@XZ) referenced in function _main
2>..\..\.bin\Example\Release\Example.exe : fatal error LNK1120: 2 unresolved externals
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

我的预制项目的文件夹结构:

SFML_PROJECT
|-- .libraries
| `-- SFML-2.3.2-Win32
| |-- include
| |-- lib
| `-- bin
|-- example
| `-- main.cpp
|-- include
| |-- App.h
| `-- Config.h
|-- src
| `-- App.cpp
`-- premake5.lua

还有我的premake5.lua (对于相当大的文件,我很抱歉,但如果我缩短它,我可能会错过一些重要的东西)

总结一下我的 ConsoleApp 发布配置:
- 我添加了 SFML include
- 我链接到链接到 SFML 二进制文件的 SharedLib 项目

最佳答案

我刚刚在 App.h/App.cpp 中添加了一个空的构造函数和析构函数,它现在似乎可以工作了......

如果我使用 App.h/App.cpp 作为 dll 的一部分,如果有人能解释我为什么需要定义这些,我将不胜感激 但如果我将它们直接用作 Executable 的一部分,则不会。

关于c++ - Premake 生成的解决方案不会在 Release 中编译,但会在 Debug 中编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36648818/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com