C++|C++ Undefined reference 未定义引用问题解决
今天在配置OpenEXR的过程中,遇到了在按照说明安装配置好后,在CLion project中无法正常引用的问题:
CMakeFiles/picc_test.dir/main.cpp.o:在函数‘main’中:这样子的报错,在谷歌和百度上搜索都没有给出一个可行的方案,在看OpenEXR的README.md中的最后一句看到它是支持使用pkg-config包进行管理的,所以可以通过pkg-config搜寻OpenEXR编译需要的包的flags然后将这些包的flags添加到CLion中的CMakeLists.txt中即可,具体的操作是:
/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()’未定义的引用
pkg-config --libs OpenEXR
输出是:
-L/usr/local/lib -lIlmImf -lImath -lHalf -lIex -lIexMath -lIlmThread -pthread
所以我们在CMakeLists.txt中添加:
set(OpenEXRLinkers -lIlmImf -lImath -lHalf -lIex -lIexMath -lIlmThread -pthread)【C++|C++ Undefined reference 未定义引用问题解决】再次编译即通过,没有其它问题出现。
target_link_libraries( YOUR_PROJECT_NAME ${OpenEXRLinkers} )
推荐阅读
- opencv|opencv C++模板匹配的简单实现
- C语言学习|第十一届蓝桥杯省赛 大学B组 C/C++ 第一场
- c++基础概念笔记
- [译文]Domain|[译文]Domain Driven Design Reference(四)—— 柔性设计
- 牛逼!C++开发的穿越丛林真人游戏,游戏未上线就有百万人气
- C++Primer之|C++Primer之 函数探幽
- c/c++|有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代...
- QML基础信息
- C++-类型转换
- MongoDB|MongoDB - 简介