Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ g++;链接器找不到库_C++_G++ - Fatal编程技术网

C++ g++;链接器找不到库

C++ g++;链接器找不到库,c++,g++,C++,G++,我想在我的c++/test.cpp文件中使用它 #include "omp/HandEvaluator.h" #include <iostream> using namespace omp; int main() { HandEvaluator eval; Hand h = Hand::empty(); // Final hand must include empty() exactly on

我想在我的c++/test.cpp文件中使用它

    #include "omp/HandEvaluator.h"
    #include <iostream>
    using namespace omp;
    int main()
    {
        HandEvaluator eval;
        Hand h = Hand::empty(); // Final hand must include empty() exactly once!
        h += Hand(51) + Hand(48) + Hand(0) + Hand(1) + Hand(2); // AdAs2s2h2c
        std::cout << eval.evaluate(h) << std::endl; // 28684 = 7 * 4096 + 12
    }
但链接器有错误:

/usr/bin/ld:找不到-lompeval collect2:错误:ld返回了1个退出状态


以下是整个构建:

您可以尝试一下
-lompeval
,也就是说,
l
和库名之间没有空格吗?结果相同,只是语法不同而已。有趣的是,如果我首先编译它,并且为了链接,我使用了到静态库的绝对路径。。。我将使用原始命令检查其他事项:1)删除
-L
之后的空格,和/或2)将
c++
复制到
cpp
。我认为Linux可以正确地处理这些带有
+
等字符的路径,因此您不必转义它们,但是。。。(虽然如果这是问题所在,你提到的解决方案也不会奏效)我想我现在知道问题出在哪里了。通常,库名称以
lib
开头。编写类似于
-l ompeval
的命令时,搜索的库名称是
libompeval
(.so或.a)。如果您只需将命令更改为
g++-Wall-glib/ompeval.a-I/home/a/projects/c++/ompeval/test.cpp-v
,它就可以正常工作。请看另一个问题:或者,正如它在另一个回答中所说的,您也可以保持您的命令不变,并创建一个到您的
ompeval.a
的符号链接
libompeval.a
(使用
ln-s ompeval.a libompeval.a
projects/c++$ g++ -Wall -g -L /home/a/projects/c++/OMPEval/lib/ -l ompeval -I /home/a/projects/c++/OMPEval/  test.cpp  -v