Week 7 Class 18 Mon Oct 05 Posted: Oct 05

Class session:

  1. Announcement: Using the bind mount, we used a subshell for the pwd command, as in:

    docker run --mount type=bind,source=$(pwd),target=/srcComplexity,readonly

    At one point, I briefly mentioned that examples of this had quotes around the subshell. I have not been doing that, even in the screencasts for today.

    However, I ran into a problem with pathnames that contain spaces. Ironically enough, when running your CMake files from the previous class:

    invalid argument "type=bind,source=..." for "--mount" flag: target is required

    as the path, i.e., /Users/collard/Library/Mobile Documents/ contains spaces.

    From now on, I will use double quotes around the subshell when it produces a path/filename:

    docker run --mount type=bind,source="$(pwd)",target=/srcComplexity,readonly ...

    Note that the problem here is not the subshell, but that it returns a filename that may contain spaces.

  2. Screencast: CMake Static Libraries Plus
  3. Exercise 42: CMake Static Library

    Create a CMake build for SEComplexity that creates and links only to a static library.

    Enter it in steps, and check what occurs on each step.

    Upload your CMakeLists.txt to Brightspace.

  4. Screencast: CMake Shared Libraries
  5. Exercise 43: CMake Shared Library

    Create a CMake build for SEComplexity that creates and links only to a shared library. This CMake file does not include the static library at all.

    Enter it in steps, and check what occurs on each step.

    Upload your CMakeLists.txt to Brightspace.

  6. Screencast: CMake Both Static & Shared Libraries
  7. Exercise 44: CMake Both Static & Shared Libraries

    Create a CMake build for SEComplexity that creates both the static and shared libraries.

    The srcComplexity program is to link to the shared library.

    Enter it in steps, and check what occurs on each step.

    Upload your CMakeLists.txt to Brightspace.

Screencast Folder: Class 18 Mon Oct 05

Exercise Due Date: 4 pm on Tuesday, Oct 06

Reminders: