在纬度-经度和 UTM-UPS 网格之间转换坐标
为了简化编译和执行流程,可以使用一个 Makefile 来自动化编译和执行命令。这样只需在项目目录中运行 make 或者指定特定目标(如 make run),就可以完成编译和执行。
- 编译和执行:在终端中输入
make run1,即可编译并执行final1,同时在output文件夹下生成转换结果,实现从经纬度BL转为UTM投影下的XY(m)的功能。;在终端中输入make run2,即可编译并执行final2,同时在output文件夹下生成转换结果,实现从UTM投影下的XY转为经纬度BL的功能。 - 自动生成:使用
make或make all可同时编译和运行所有目标。 - 清理:使用
make clean可以清理所有生成的可执行文件和输出结果。
这样,就不需要手动输入编译和执行命令,直接使用 make 管理项目文件。
-
在项目根目录下创建一个
build目录,并进入该目录:mkdir -p build && cd build
-
执行 CMake 以生成 Makefile,并在
build目录中进行编译:cmake .. make
-
编译后,可以直接运行:
make run_all # 运行 final1 和 final2
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}确保运行可执行文件时,它的工作目录是项目的根目录,这样就可以找到file和output目录。- 这样设置后,您的程序就能找到输入文件
LB.txt和XY.txt,从而避免出现 "无法打开输入文件" 的错误。
按照这些修改,您的项目应该能够顺利编译并运行而不再出现文件路径的问题。
-
编译项目:确保您已经在
build目录中执行了cmake ..和make命令,这样会生成可执行文件final1和final2。 -
单独运行 final1:
make run_final1
-
单独运行 final2:
make run_final2
您还可以直接在终端中运行生成的可执行文件,前提是您在 build 目录中。您可以使用以下命令:
-
运行 final1:
./final1
-
运行 final2:
./final2
- 确保在运行时,输入文件(如
file/LB.txt和file/XY.txt)的位置正确,并且相对于当前工作目录是可以访问的。如果使用的是make run_final1或make run_final2,请确保您的 CMakeLists.txt 中设置的工作目录是正确的。 - 如果您更改了任何源代码或文件,记得重新编译:
make
通过这些步骤,您可以轻松地单独运行 final1 和 final2。