C++ 构建一个c++;linux程序。什么时候分拆单独的文件和单独的程序
对c/c++来说是相当新的。我正在为RAPI和.NET编写一些代码,这对我来说很容易,但是我在C++中与设计进行了一次较量。p> 简言之,我应该在什么时候将代码从主文件、另一个cpp文件和一个单独的程序中分离出来 目前,我有两个程序,通过插座fifo相互对话 PiSocket-所有互联网通信。Put's,Get's和信号机连接。以及从MainPi发送和接收数据 MainPi-使用PiSocket发送和接收数据,处理数据库并执行系统命令(如拉/发送gpio数据) 我不确定的是: 基本上有4段代码。主循环、internet连接、数据库调用和系统命令。应在何时/如何发布?我怀疑所有的代码组合将远远超过20k行,但它必须是相当实时的通信(在几秒钟内) 使用套接字进行通信看起来很混乱,所以我认为每一部分都应该是自己的cpp文件。同时,PiSocket.cpp引用MainPi和vise引用MainPi是否为循环冗余?或者我应该用自己的线程调用main中无限循环中的每个片段?也会有代码通过web/PiSocket更新,这可能很重要,但我怀疑 当然这很简单,但我的搜索结果并没有透露太多,我真的不想以后再重新设计它C++ 构建一个c++;linux程序。什么时候分拆单独的文件和单独的程序,c++,linux,architecture,C++,Linux,Architecture,对c/c++来说是相当新的。我正在为RAPI和.NET编写一些代码,这对我来说很容易,但是我在C++中与设计进行了一次较量。p> 简言之,我应该在什么时候将代码从主文件、另一个cpp文件和一个单独的程序中分离出来 目前,我有两个程序,通过插座fifo相互对话 PiSocket-所有互联网通信。Put's,Get's和信号机连接。以及从MainPi发送和接收数据 MainPi-使用PiSocket发送和接收数据,处理数据库并执行系统命令(如拉/发送gpio数据) 我不确定的是: 基本上有4段代码。
提前完成任务。您将两个独立的问题混为一谈:
- .cpp文件具有自己的
可以生成单独的可执行程序,这些程序在自己的进程中运行main()
> CPP文件意味着一个单独的C++翻译单元,它导致一个单独的对象/库文件,它可能在或可能不链接在已经构建的其他对象
中。# compile piSocket.cpp into piSocket.o
g++ -c piSocket.cpp
# compile mainPi.cpp and link in piSocket.o to form myApp executable
g++ -o myApp mainPi.cpp piSocket.o
总而言之,我想这会给你带来痛苦。一个好的替代方法是将所有内容都放在一个文件中,先学习足够的语言以使功能正常工作,然后再担心将文件内容一分为二。如果您无法使功能正常工作,那么理解更好的“物理设计”(分离为文件)是没有意义的。谢谢。我就是这么想的。不知道为什么以前的开发人员制作了两个独立的程序。听起来每个主要功能领域都应该在自己的cpp文件中,这比现在的做法更有意义。。