C++ Undefined reference 未定义引用问题解决

今天在配置OpenEXR的过程中,遇到了在按照说明安装配置好后,在CLion project中无法正常引用的问题:

CMakeFiles/picc_test.dir/main.cpp.o:在函数‘main’中:
/home/roger/CLionProjects/picc_test/main.cpp:15:对‘Imf_2_3::globalThreadCount()’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:15:对‘Imf_2_3::RgbaInputFile::RgbaInputFile(char const , int)’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:17:对‘Imf_2_3::RgbaInputFile::dataWindow() const’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:25:对‘Imf_2_3::RgbaInputFile::setFrameBuffer(Imf_2_3::Rgba
, unsigned long, unsigned long)’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:26:对‘Imf_2_3::RgbaInputFile::readPixels(int, int)’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:29:对‘Imf_2_3::globalThreadCount()’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:29:对‘Imf_2_3::RgbaInputFile::RgbaInputFile(char const , int)’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:31:对‘Imf_2_3::RgbaInputFile::dataWindow() const’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:39:对‘Imf_2_3::RgbaInputFile::setFrameBuffer(Imf_2_3::Rgba
, unsigned long, unsigned long)’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:40:对‘Imf_2_3::RgbaInputFile::readPixels(int, int)’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:29:对‘Imf_2_3::RgbaInputFile::~RgbaInputFile()’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:15:对‘Imf_2_3::RgbaInputFile::~RgbaInputFile()’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:29:对‘Imf_2_3::RgbaInputFile::~RgbaInputFile()’未定义的引用
/home/roger/CLionProjects/picc_test/main.cpp:15:对‘Imf_2_3::RgbaInputFile::~RgbaInputFile()’未定义的引用

这样子的报错,在谷歌和百度上搜索都没有给出一个可行的方案,在看OpenEXR的 README.md 中的最后一句看到它是支持使用 pkg-config 包进行管理的,所以可以通过 pkg-config 搜寻OpenEXR编译需要的包的flags然后将这些包的flags添加到CLion中的 CMakeLists.txt 中即可,具体的操作是:

pkg-config --libs OpenEXR
输出是: -L/usr/local/lib -lIlmImf -lImath -lHalf -lIex -lIexMath -lIlmThread -pthread
所以我们在 CMakeLists.txt 中添加: