关于可执行文件.exe跨设备移动后不能正常运行的问题

问题描述

做了一个贪吃蛇小游戏,发现可执行文件不能在其他电脑正常运行,在输出函数调用结果位置上出现乱码。

自己猜想

1. 虽然进行了静态链接,但是非标准库没有进行链接。
2. 不同电脑的编码格式不同?
针对第一种猜想: 就显示的结果来看,score后面是有个函数调用,但在别人电脑上函数调用位置显示乱码,而输出字符的位置是能正常显示。问题是score后面的函数调用并没有用到非标准库。这个猜想也可能不对。
针对第二种猜想: 可以看到其他直接输出的字符是可以正常显示的,编码问题又从何说起呢。

我的电脑运行状态

img

其他电脑运行状态

img

头文件内容

#include<iostream>
using namespace std;
#include<ctime>
#include<conio.h>
#include<windows.h>
CMakeLists.txt内容
cmake_minimum_required(VERSION 3.0)

project(projectName)

include_directories(include)

set(CMAKE_CXX_FLAGS "-O2")

set(CMAKE_EXE_LINKER_FLAGS "-static") 

add_executable(snakePeter_vesion1.1.9 Game.cpp src/wall.cpp src/snake.cpp src/food.cpp)

已经解决。