sorry, i misled you. I tried to add something to kernel32 by calling a .so generated by g++. at beginning, I wanted to link a .a. certainly, winegcc can not link a .a created by g++. so I switched to .so. there was no errors in making kernel32.dll.so but when run "wine notepad.exe", it reported load kernel32.so failed. a C++ function symbol could not be resolved. it was so strange. at last, i found the problem was in my code, there was an unused and undefined class function. i always used the library as .a before,so the problem was not reported. i removed the function.the problem was gone.