Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • practical_beamline_controls_training/session_2/instructions
1 result
Show changes
Commits on Source (2)
...@@ -118,11 +118,11 @@ configure/CONFIG:18: *** EPICS_BASE must be set in a configure/RELEASE file. St ...@@ -118,11 +118,11 @@ configure/CONFIG:18: *** EPICS_BASE must be set in a configure/RELEASE file. St
<details> <details>
<summary>what does this mean?</summary> <summary>what does this mean?</summary>
This error message indicates that the EPICS_BASE environment variable is not defined in your configure/RELEASE file. This error message indicates that the `EPICS_BASE` environment variable is not defined in your **configure/RELEASE** file.
EPICS_BASE is a mandatory environment variable that points to the location of the EPICS base installation directory. The configure/RELEASE file is used to define EPICS-related environment variables required for building an IOC. `EPICS_BASE` is a mandatory environment variable that points to the location of the EPICS base installation directory. The **configure/RELEASE** file is used to define EPICS-related environment variables required for building an IOC.
Here's an example of how to set the EPICS_BASE variable in the configure/RELEASE file: Here's an example of how to set the `EPICS_BASE `variable in the **configure/RELEASE** file:
``` ```
EPICS_BASE=/path/to/epics/base EPICS_BASE=/path/to/epics/base
...@@ -130,7 +130,7 @@ EPICS_BASE=/path/to/epics/base ...@@ -130,7 +130,7 @@ EPICS_BASE=/path/to/epics/base
where "/path/to/epics/base" points to your EPICS base installation directory. where "/path/to/epics/base" points to your EPICS base installation directory.
Once you have set the EPICS_BASE variable in the configure/RELEASE file, try building your IOC again and the error should be resolved. Once you have set the `EPICS_BASE` variable in the **configure/RELEASE** file, try building your IOC again and the error should be resolved.
</details> </details>
### 2.5 Resolve build error #1 ### 2.5 Resolve build error #1
...@@ -143,7 +143,7 @@ $ gedit configure/RELEASE & ...@@ -143,7 +143,7 @@ $ gedit configure/RELEASE &
<details> <details>
<summary>solution</summary> <summary>solution</summary>
EPICS_BASE doesn't need to be defined explicitly; The synApps configure/RELEASE file defines the version of base used to build it, so only the SUPPORT path needs to be corrected. `EPICS_BASE` doesn't need to be defined explicitly; the synApps configure/RELEASE file defines the version of base used to build it, so only the SUPPORT path needs to be corrected.
```diff ```diff
$ git diff $ git diff
...@@ -206,7 +206,7 @@ make: *** [xxxApp.install] Error 2 ...@@ -206,7 +206,7 @@ make: *** [xxxApp.install] Error 2
<details> <details>
<summary>what does this mean?</summary> <summary>what does this mean?</summary>
This error message indicates that the linker (ld) is unable to find two libraries: net and pcap. When building your IOC (Input/Output Controller) using the make command, the linker is responsible for resolving and linking all the required libraries. This error message indicates that the linker (ld) is unable to find two libraries: net and pcap. When building your IOC using the make command, the linker is responsible for resolving and linking all the required libraries.
The -l flag is used to specify libraries that need to be linked. In this case, the linker is looking for net and pcap. However, it is unable to locate these libraries, which results in the error. The -l flag is used to specify libraries that need to be linked. In this case, the linker is looking for net and pcap. However, it is unable to locate these libraries, which results in the error.
</details> </details>
......
...@@ -380,6 +380,8 @@ make[1]: Leaving directory '/home/beams/USERNAME/PET-S2/epics/synApps_6_2_1/supp ...@@ -380,6 +380,8 @@ make[1]: Leaving directory '/home/beams/USERNAME/PET-S2/epics/synApps_6_2_1/supp
``` ```
</details> </details>
Note: issuing a `make` in the **epics/synApps_6_2_1/support/motorVMC** directory builds the motorVMC support module, whereas running make in the **epics/synApps_6_2_1/ioc/xxx** directory builds the specific IOC application (binary), which relies on various support modules, including motorVMC. The former focuses on building the support module itself (dbd and lib), while the latter focuses on building the IOC application that utilizes the support modules (binary).
### 4.8 Confirm build products exist ### 4.8 Confirm build products exist
When the build is successful there should be a database definitions file (.dbd) in the top level dbd dir, as well as a static library (.a) and a dynamic library (.so) in the arch-specific lib dir. When the build is successful there should be a database definitions file (.dbd) in the top level dbd dir, as well as a static library (.a) and a dynamic library (.so) in the arch-specific lib dir.
...@@ -402,4 +404,6 @@ total 92 ...@@ -402,4 +404,6 @@ total 92
``` ```
</details> </details>
## [5 Add virtual motors to the IOC](5-Add-virtual-motors.md) ## [5 Add virtual motors to the IOC](5-Add-virtual-motors.md)