使用 code::blocks 构建的应用只能从 code::blocks 运行
App built with code::blocks only runs from code::blocks
我用 code::blocks 构建了一个应用程序。当我从 code:blocks ( Ctrl-F10 ) 运行 时,它 运行 没问题。当我通过在文件资源管理器中双击或从命令提示符 运行 它时,我得到 "The application was unable to start correctly (0xc000007b)"
当我使用 Ctrl-F10 在 运行 中 code::blocks 应用程序时,与 运行 应用程序的其他方法相比有什么不同?
我知道错误编号与 64 位和 32 位应用程序有关。我的应用程序和我的 OS 是 64 位的。
我已经构建并 运行 成功地构建了其他几个应用程序。与这个唯一的显着区别是它结合了 NewTek https://www.newtek.com/
的 NDI SDK
代码如下:
#include <iostream>
#include <Processing.NDI.Lib.h>
#include <nana/gui.hpp>
using namespace std;
int main()
{
if (!NDIlib_initialize())
throw std::runtime_error("Cannot initialize NDI");
NDIlib_find_instance_t pNDI_find = NDIlib_find_create_v2();
if (!pNDI_find)
throw std::runtime_error("Cannot initialize NDI");
nana::form fm(nana::rectangle( 100,100, 300, 300 ) );
fm.show();
nana::exec();
return 0;
}
以下是构建命令:
g++.exe -Wall -fexceptions -m64 -std=c++11 -O2
-I"C:\Program Files\NewTek\NewTek NDI 3.8 SDK\Include"
-IC:\Users\James\code\nana-1.7.0\include
-c C:\Users\James\code\VisControl\ndi\test\main.cpp -o obj\Release\main.o
g++.exe -L"C:\Program Files\NewTek\NewTek NDI 3.8 SDK\Lib\x64"
-LC:\Users\James\code\nana-1.7.0\build\codeblocks
-o ..\..\bin\test.exe obj\Release\main.o
-static-libgcc -m64
-s "C:\Program Files\NewTek\NewTek NDI 3.8 SDK\Lib\x64\Processing.NDI.Lib.x64.lib"
-lnana -lgdi32 -lcomdlg32 -lstdc++fs
添加链接器选项后问题消失了 -static
我用 code::blocks 构建了一个应用程序。当我从 code:blocks ( Ctrl-F10 ) 运行 时,它 运行 没问题。当我通过在文件资源管理器中双击或从命令提示符 运行 它时,我得到 "The application was unable to start correctly (0xc000007b)"
当我使用 Ctrl-F10 在 运行 中 code::blocks 应用程序时,与 运行 应用程序的其他方法相比有什么不同?
我知道错误编号与 64 位和 32 位应用程序有关。我的应用程序和我的 OS 是 64 位的。
我已经构建并 运行 成功地构建了其他几个应用程序。与这个唯一的显着区别是它结合了 NewTek https://www.newtek.com/
的 NDI SDK代码如下:
#include <iostream>
#include <Processing.NDI.Lib.h>
#include <nana/gui.hpp>
using namespace std;
int main()
{
if (!NDIlib_initialize())
throw std::runtime_error("Cannot initialize NDI");
NDIlib_find_instance_t pNDI_find = NDIlib_find_create_v2();
if (!pNDI_find)
throw std::runtime_error("Cannot initialize NDI");
nana::form fm(nana::rectangle( 100,100, 300, 300 ) );
fm.show();
nana::exec();
return 0;
}
以下是构建命令:
g++.exe -Wall -fexceptions -m64 -std=c++11 -O2
-I"C:\Program Files\NewTek\NewTek NDI 3.8 SDK\Include"
-IC:\Users\James\code\nana-1.7.0\include
-c C:\Users\James\code\VisControl\ndi\test\main.cpp -o obj\Release\main.o
g++.exe -L"C:\Program Files\NewTek\NewTek NDI 3.8 SDK\Lib\x64"
-LC:\Users\James\code\nana-1.7.0\build\codeblocks
-o ..\..\bin\test.exe obj\Release\main.o
-static-libgcc -m64
-s "C:\Program Files\NewTek\NewTek NDI 3.8 SDK\Lib\x64\Processing.NDI.Lib.x64.lib"
-lnana -lgdi32 -lcomdlg32 -lstdc++fs
添加链接器选项后问题消失了 -static