0
叫我有以下的main.cpp文件:的main()似乎不能在QtCore列入
int main(int argc, char* argv[]) {
*(int*)(NULL) = 5;
delete (void*)(4);
throw int(0);
std::abort();
}
這當然會導致崩潰。將下面的魔術線添加到頭文件的頂部:
#include <QtCore>
無論我把什麼濫用放到main()中,程序都不會崩潰。結論:主要不被稱爲。
爲什麼..?
我的CMake的文件:
find_package(Qt5Widgets REQUIRED)
set(CMAKE_AUTOMOC on)
file(GLOB_RECURSE source_files *.cpp *.c)
add_executable(myexec ${source_files})
qt5_use_modules(myexec Widgets)
CMake的2.8.10(MSVS 11 Win64的),Qt的5.0.2
你可以嘗試添加「#include」而不是QtCore嗎? –
@VaibhavDesai結果相同。 – user
@VaibhavDesai我回來了。那是一個過時的可執行文件。只是'#include' QApplication頭部導致崩潰(主被調用)。但是,添加以下兩行,結果'main()'不會被調用:'QApplication app(argc,argv); return app.exec();'。據推測,在鏈接過程中會發生一些可疑的事情,我無法弄清楚。 – user