如何使用cmake编译软件项目3

如何使用cmake编译软件项目3,第1张

1 在主程序所在目录的CMakeListstxt中定义要编译的主程序和输出的可执行文件名:

#定义主程序名称

add_executable(输出的可执行文件名称 源文件列表)

#定义链接库

target_link_libraries(输出的可执行文件名称 链接库1 链接库2 )

2在库文件所在目录中的CMakeListstxt中告诉cmake将其所有库文件编译成动态库:

#通过set命令自定义变量LIB_SRC包括那些源文件,这些文件将编译到动态库

set (LIB_SRC

libsrc1cpp

libsrc2cpp

libsrc3cpp

)

#将上述文件编译到库中

add_library (库名称 SHARED ${LIB_SRC})

#定义库的输出位置, 如果在根目录下的CMakeListstxt中已经定义,此处可注释掉。

set(LIBRARY_OUTPUT_PATH 具体的目录位置)

子程序和主程序写在同一个文件里就可以了。

如果分开写,那么分别编译,然后一起链接。代码上不需要任何改动。跟同一个文件一模一样。

至于如何建立工程,这是 *** 作的问题。

Fortran 是一门语言,本身没有任何 *** 作问题。

全球支持Fortran语言的编译器有数十种,不同的编译器又使用若干种不同的编译环境。

例如 Compaq Visual Fortran,Intel Fortran 分别使用 VC6 和 VS 作为编译环境。Ftn95有自己的集成环境,叫Plato。甚至一些开源的,开放的编译环境经过配置,都可以使用Fortran的各种编译器。

这些 *** 作方法问题,也因为不同的编译环境而不同。

你的问题,就好像问:“英语如何查短句” 一样。英语本身是语言,不存在 *** 作问题。

如果你要问,也应该类似这样问:“金山词霸如何查短句”??

类似的,你的问题,也应该是类似:“Compaq Visual Fortran 怎么建立工程” 或者其他编译器如何如何。

举例文件:addc

gcc -fPIC -c addc /生成o文件

gcc -shared addo -o libmathso /加载addo到math动态库

gcc testc -L -Lmath /testc 为主程序

另外;配置动态库加载器环境变量:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:

1、如果,在一个c主程序中,以include形式包含了其他所有的引用文件,在编译过程中,编译器首先会将这些文件合并到一个临时文件中,然后再对这个临时文件进行编译。

2、如果,是作为一个工程,编译器会分别编译各个独立的文件(如果文件中有include按照上一步进行),然后再将编译好的初步结果用链接程序连到一起。

简单的说,每一个c或者cc都是一个编译单元,每一个编译单元编辑的结果是一个o或者obj之类的中间文件,至于是否是多文件,不需要关心,但是要保证不同的编译单元之间不要有重复的符号,这就是要避免重复包含。

每一个编译单元生成的目标文件o或者obj都会引用一些不在本目标文件中的符号,这些符号定义在别的o或者obj文件中, 链接器把他们联系在一起,所有的符号也就都有定义了,编译链接简单说来就是这样。

以上就是关于如何使用cmake编译软件项目3全部的内容,包括:如何使用cmake编译软件项目3、fortran怎么编写包含子程序的主程序子程序和主程序是两个独立的文件,这该怎么编写怎么建立工程、怎样将自己做的动态链接库“静态”编译到可执行文件里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10143372.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存