郑州给公司做网站的公司电子商务网站开发要学什么
支持能编译成在不同系统上运行程序的方法
 我们代码就一份,但有时需要编译成arm32,有时需要编译成x86_64,或更多
1、首先先将代码定义一个名称:
 #将所有的源文件列为一个集合,集合名字叫做SRC_LISTS
 set(SRC_LISTS
 main.cpp
 A.cpp
 )
 这里可以不用包含头文件。
 2、指定不同的编译目标
 #两个编译目标,分别是BIT64,ARM32
 add_executable(BIT64
 ${SRC_LISTS})
 add_executable(ARM32
 ${SRC_LISTS})
 如果不同编译目标的源代码还有不通,可以定义两个源代码集合,如上面的SRC_LISTS,比图还可以定义一个SRC_LISTS_ARM32,然后在编译目标中使用不同的集合。
3、指定编译目标的生成文件名称和路径
 SET_TARGET_PROPERTIES(BIT64 PROPERTIES
 RUNTIME_OUTPUT_DIRECTORY …/BIT64/BIN
 OUTPUT_NAME ${ExeFileName}
 )
 SET_TARGET_PROPERTIES(ARM32 PROPERTIES
 RUNTIME_OUTPUT_DIRECTORY …/ARM32/BIN
 OUTPUT_NAME ${ExeFileName}
 )
 这里指定编译64bit的输出路径是当前路径的上级路径下的BIT64/BIN
 指定ARM32的最终生成文件的路径是当前路径的上级路径下的ARM32/BIN
 输出文件名均为为ExeFileName,之前可以指定,比如SET(ExeFileName abc.exe)
 就是64bit和ARM32的输出的可执行文件名均为abc.exe
4、指定链接需要的库
 target_link_libraries(BIT64
 pthread
 sqlite3
 )
 target_link_libraries(ARM32
 Pthread_arm32
 sqlite3_arm32
 )
 这里的库的实际名称是需要加前缀和后缀的,比如pthread,实际的库名要么是libpthread.lib,要么是libpthread.so。
 这里用到的BIT64和ARM32的库用不同的名字来区分,本来准备使用相同的名称放在不同的目录,但cmakelist只支持指定一个库路径:
 link_directories(…/…/lib)
 暂时未找到不同的目标用不同的库路径的方法,若有网友有此办法,望评论或私信告知。
