none
VS2005编译的C++程序别人不能用 RRS feed

  • 问题

  • 本机XP系统,目标机sever2003,一个已经编好的MFC工程,我拿来直接编译可以在本机和目标机正常运行,但是我改一下,哪怕是加个空格,这个工程编译就会出错C1853,然后我取消预编译头,又会出C1047错误,然后我再删掉工程中的.obj文件,编译就没错误了,程序也能修改了,但是编译好的程序却不能在目标机上正常运行了,在目标机上只有进程,没有界面和托盘图标,也不能正常通讯(该程序为通讯程序)。
    2013年8月9日 2:37

答案

  • 你好,

    出现错误“C1853”可能的原因:

    • 预编译头文件是用前一编译器版本编译的。

    • 预编译头文件是 C++,而您正在从 C 使用它。

    请查看工程属性,在 precompiled headers 项下的设置。若要解决“C1853”问题,请尝试用当前的编译器重新编译头文件。

    出现错误“C1047”可能的原因:

    • 当将用 /LTCG 生成的对象文件或库一起进行链接,但这些对象文件或库却是用不同版本的 Visual C++ 工具集生成的时,便会导致 C1047 错误。
    • 在开始使用新版编译器时,如果没有对现有对象文件或库执行完全的重新生成,则可能发生此错误。

    若要解决“C1047”问题,请重新生成所有的对象文件或库。

    可能是当前编译器暂时出现的问题,请尝试新建工程,将所有文件拷贝到新的工程运行是否依然有错误。

    如果问题依然存在,请考虑提供具体的错误提示信息以进行深入分析。

    感谢你的支持。


    Jane Wang
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 GT_MDRG 2013年8月14日 9:09
    2013年8月10日 13:31
    版主
  • 你好,

    请检查目标机的运行环境是否正常,版本是否兼容(32位还是64位),是否支持MFC类库,VS 和OS 是否都进行了必要的更新、安装相应的补丁。

    请查看项目--〉属性--〉配置属性--〉C/C++--〉代码生成,共有/MT,/MTd,/Md,/MDd四个选项,必须让所有使用的库都使用相同的配置,否则就会有相应的提示,甚至可能会出现无法解析的函数。

    另外,如果是通过TFS 在目标机上运行,请注意TFS的相关属性和设置。

    相关信息请参看VC编译问题。


    Jane Wang
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 GT_MDRG 2013年8月14日 9:09
    2013年8月12日 10:07
    版主

全部回复

  • 我在XP系统上用VS2005编号的C++程序,本机上运行正常,在别人机器上就只有进程,没有界面和托盘图标了,程序也不能运行了,目标机是windows sever 2003,也不报错误。
    2013年8月10日 6:02
  • 你好,

    出现错误“C1853”可能的原因:

    • 预编译头文件是用前一编译器版本编译的。

    • 预编译头文件是 C++,而您正在从 C 使用它。

    请查看工程属性,在 precompiled headers 项下的设置。若要解决“C1853”问题,请尝试用当前的编译器重新编译头文件。

    出现错误“C1047”可能的原因:

    • 当将用 /LTCG 生成的对象文件或库一起进行链接,但这些对象文件或库却是用不同版本的 Visual C++ 工具集生成的时,便会导致 C1047 错误。
    • 在开始使用新版编译器时,如果没有对现有对象文件或库执行完全的重新生成,则可能发生此错误。

    若要解决“C1047”问题,请重新生成所有的对象文件或库。

    可能是当前编译器暂时出现的问题,请尝试新建工程,将所有文件拷贝到新的工程运行是否依然有错误。

    如果问题依然存在,请考虑提供具体的错误提示信息以进行深入分析。

    感谢你的支持。


    Jane Wang
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 GT_MDRG 2013年8月14日 9:09
    2013年8月10日 13:31
    版主
  • 你编译的程序是否使用了某些图形库,可能需要附带上。如果还不行的话,在编译的时候有个配置,可以选择编译方式是本机代码还是目标代码。
    2013年8月10日 15:42
  • 我按照您说的处理了错误,但是再次编译好的可执行文件能在本机正常运行,却不能再目标机上正常运行(只有进程,没有界面和图标),本机为windows xp,目标机为windows server 2003.
    2013年8月11日 13:09
  • 你编译的程序是否使用了某些图形库,可能需要附带上。如果还不行的话,在编译的时候有个配置,可以选择编译方式是本机代码还是目标代码。
    我用的静态编译,所有的资源文件应该都会自己编译进去吧
    2013年8月12日 1:27
  • 你好,

    请检查目标机的运行环境是否正常,版本是否兼容(32位还是64位),是否支持MFC类库,VS 和OS 是否都进行了必要的更新、安装相应的补丁。

    请查看项目--〉属性--〉配置属性--〉C/C++--〉代码生成,共有/MT,/MTd,/Md,/MDd四个选项,必须让所有使用的库都使用相同的配置,否则就会有相应的提示,甚至可能会出现无法解析的函数。

    另外,如果是通过TFS 在目标机上运行,请注意TFS的相关属性和设置。

    相关信息请参看VC编译问题。


    Jane Wang
    MSDN Community Support | Feedback to us
    Develop and promote your apps in Windows Store
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 GT_MDRG 2013年8月14日 9:09
    2013年8月12日 10:07
    版主