正如标题所说,我在编译《Hello,World!》时遇到了困难。来自 sciter.com 的示例。据我所知,我已正确链接所有内容,我确保 DLL 的位架构与我的项目的位架构相匹配,等等。
我已经尝试了几个小时来解决这个问题,并且 sciters 网站之前没有提出过有关该主题的问题。希望有人能指出我正确的方向。
这是编译器输出:
====================[ Build | SciterDemo | Debug ]==============================
"C:\Program Files\JetBrains\CLion 2022.2.1\bin\cmake\win\bin\cmake.exe" --build C:\Users\edwar\CLionProjects\SciterDemo\cmake-build-debug --target SciterDemo -j 12
[0/1] Re-running CMake...
-- Configuring done
-- Linking Sciter
-- Generating done
-- Build files have been written to: C:/Users/edwar/CLionProjects/SciterDemo/cmake-build-debug
[1/1] Linking CXX executable SciterDemo.exe
FAILED: SciterDemo.exe
cmd.exe /C "cd . && C:\PROGRA~1\JETBRA~1\CLION2~1.1\bin\mingw\bin\G__~1.EXE -g CMakeFiles/SciterDemo.dir/main.cpp.obj -o SciterDemo.exe -Wl,--out-implib,libSciterDemo.dll.a -Wl,--major-image-version,0,--minor-image-version,0 sciter-js-sdk-main/bin/windows/x64/libsciter.a -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
C:\Program Files\JetBrains\CLion 2022.2.1\bin\mingw\bin/ld.exe: C:/PROGRA~1/JETBRA~1/CLION2~1.1/bin/mingw/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o):crt0_c.c:(.text+0x46): undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
编辑:
这是我的
main.cpp
文件中的代码:
#include "sciter-js-sdk-main/include/sciter-x.h"
#include "sciter-js-sdk-main/include/sciter-x-window.hpp"
#include "include/sciter-win-main.cpp"
class frame: public sciter::window {
public:
frame() : window(SW_TITLEBAR | SW_RESIZEABLE | SW_CONTROLS | SW_MAIN | SW_ENABLE_DEBUG) {}
SOM_PASSPORT_BEGIN(frame)
SOM_FUNCS(
SOM_FUNC(nativeMessage)
)
SOM_PASSPORT_END
sciter::string nativeMessage() {return WSTR("Hello, World!");}
};
#include "resources.cpp"
int uimain(std::function<int()> run ) {
sciter::archive::instance().open(aux::elements_of(resources));
sciter::om::hasset<frame> pwin = new frame();
pwin->load((WSTR("this://app/main.htm")));
pwin->expand();
return run();
}
如您所见,它只有
uimain
,根据 Hello World! 教程是正确的。我不知道这是否会引起问题。
您需要包含 include/sciter-win-main.cpp 文件。
参见:源文件