In function ‘int open(const char*, int, ...)’,
inlined from ‘QMemoryFileData* QMemoryFile::openData(const QString&, int, uint)’ at ../../libraries/qtopia/qmemoryfile_unix.cpp:141:
/usr/include/bits/fcntl2.h:51: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments
make[6]: *** [.obj/release-shared/qmemoryfile_unix.o] Error 1
make[6]: Leaving directory `/media/%/EmbedDevelop/qtopia-free-2.2.0/qtopia/src/tools/qdawggen'
make[5]: *** [all] Error 2
make[5]: Leaving directory `/media/%/EmbedDevelop/qtopia-free-2.2.0/qtopia/src/tools/qdawggen'
make[4]: *** [sub-tools-qdawggen] Error 2
make[4]: Leaving directory `/media/%/EmbedDevelop/qtopia-free-2.2.0/qtopia/src'
make[3]: *** [sub-src-components_pro] Error 2
make[3]: Leaving directory `/media/%/EmbedDevelop/qtopia-free-2.2.0/qtopia/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/media/%/EmbedDevelop/qtopia-free-2.2.0/qtopia/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/media/%/EmbedDevelop/qtopia-free-2.2.0/qtopia'
解决办法:
将
if (!f)
f = ::open(tmpFile.latin1(), O_CREAT | O_WRONLY);
修改为
if (!f)
f = ::open(tmpFile.latin1(), O_CREAT | O_WRONLY, 0666);
按照网上说的修改了但是依然编译不通过求高手指教