Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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++上进行本地编辑,但运行在Ubuntu服务器上。在将代码上传到服务器进行编译之前,我总是确保代码在mac上编译,在服务器上我必须使用makefile链接安装在本地目录中的库。基本上,我已经编辑了我的大部分代码,发现它在我的mac上编译,并上传到服务器进行编译,但它没有编译!幸运的是,我有一个备份版本的代码,所以我在服务器上尝试了,而且也不会再编译了!从上次我知道我的代码在服务器上编译到现在,我知道他们运行了一些更新,但这就是我所能想到的不同之处。以下是我的make文件供参考: LOCAL_INCLUDE = /home/schraiber/.local/include LOCAL_LIB = /home/schraiber/.local/lib CXXFLAGS = -I$(LOCAL_INCLUDE) CXX_LDFLAGS = -L$(LOCAL_LIB) -lgsl -lm -lgslcblas -lpthread CoalHMMgf: main.o IOUtilities.o parameters.o Algorithms.o Optimization.o probabilities.o RNGUtilities.o Data.o ThreadData.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) main.o IOUtilities.o parameters.o Algorithms.o Optimization.o probabilities.o RNGUtilities.o Data.o -o CoalHMMgf main.o: main.cpp IOUtilities.h parameters.h Algorithms.h Optimization.h probabilities.h ThreadData.h Data.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c main.cpp IOutilities.o: IOUtilities.h IOUtilities.cpp parameters.h data.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c IOUtilities.cpp parameters.o: parameters.h parameters.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c parameters.cpp Algorithms.o: Algorithms.h Algorithms.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c Algorithms.cpp Optimization.o: Optimization.h Optimization.cpp Algorithms.h parameters.h probabilities.h RNGUtilities.h ThreadData.h IOUtilities.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c Optimization.cpp probabilities.o: probabilities.h probabilities.cpp parameters.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c probabilities.cpp RNGUtilities.o: RNGUtilities.h RNGUtilities.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c RNGUtilities.cpp Data.o: Data.h Data.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c Data.cpp_C++_Compiler Construction_Linker_Makefile - Fatal编程技术网

项目赢得';我不再编译了 我目前正在C++上进行本地编辑,但运行在Ubuntu服务器上。在将代码上传到服务器进行编译之前,我总是确保代码在mac上编译,在服务器上我必须使用makefile链接安装在本地目录中的库。基本上,我已经编辑了我的大部分代码,发现它在我的mac上编译,并上传到服务器进行编译,但它没有编译!幸运的是,我有一个备份版本的代码,所以我在服务器上尝试了,而且也不会再编译了!从上次我知道我的代码在服务器上编译到现在,我知道他们运行了一些更新,但这就是我所能想到的不同之处。以下是我的make文件供参考: LOCAL_INCLUDE = /home/schraiber/.local/include LOCAL_LIB = /home/schraiber/.local/lib CXXFLAGS = -I$(LOCAL_INCLUDE) CXX_LDFLAGS = -L$(LOCAL_LIB) -lgsl -lm -lgslcblas -lpthread CoalHMMgf: main.o IOUtilities.o parameters.o Algorithms.o Optimization.o probabilities.o RNGUtilities.o Data.o ThreadData.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) main.o IOUtilities.o parameters.o Algorithms.o Optimization.o probabilities.o RNGUtilities.o Data.o -o CoalHMMgf main.o: main.cpp IOUtilities.h parameters.h Algorithms.h Optimization.h probabilities.h ThreadData.h Data.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c main.cpp IOutilities.o: IOUtilities.h IOUtilities.cpp parameters.h data.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c IOUtilities.cpp parameters.o: parameters.h parameters.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c parameters.cpp Algorithms.o: Algorithms.h Algorithms.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c Algorithms.cpp Optimization.o: Optimization.h Optimization.cpp Algorithms.h parameters.h probabilities.h RNGUtilities.h ThreadData.h IOUtilities.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c Optimization.cpp probabilities.o: probabilities.h probabilities.cpp parameters.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c probabilities.cpp RNGUtilities.o: RNGUtilities.h RNGUtilities.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c RNGUtilities.cpp Data.o: Data.h Data.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c Data.cpp

项目赢得';我不再编译了 我目前正在C++上进行本地编辑,但运行在Ubuntu服务器上。在将代码上传到服务器进行编译之前,我总是确保代码在mac上编译,在服务器上我必须使用makefile链接安装在本地目录中的库。基本上,我已经编辑了我的大部分代码,发现它在我的mac上编译,并上传到服务器进行编译,但它没有编译!幸运的是,我有一个备份版本的代码,所以我在服务器上尝试了,而且也不会再编译了!从上次我知道我的代码在服务器上编译到现在,我知道他们运行了一些更新,但这就是我所能想到的不同之处。以下是我的make文件供参考: LOCAL_INCLUDE = /home/schraiber/.local/include LOCAL_LIB = /home/schraiber/.local/lib CXXFLAGS = -I$(LOCAL_INCLUDE) CXX_LDFLAGS = -L$(LOCAL_LIB) -lgsl -lm -lgslcblas -lpthread CoalHMMgf: main.o IOUtilities.o parameters.o Algorithms.o Optimization.o probabilities.o RNGUtilities.o Data.o ThreadData.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) main.o IOUtilities.o parameters.o Algorithms.o Optimization.o probabilities.o RNGUtilities.o Data.o -o CoalHMMgf main.o: main.cpp IOUtilities.h parameters.h Algorithms.h Optimization.h probabilities.h ThreadData.h Data.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c main.cpp IOutilities.o: IOUtilities.h IOUtilities.cpp parameters.h data.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c IOUtilities.cpp parameters.o: parameters.h parameters.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c parameters.cpp Algorithms.o: Algorithms.h Algorithms.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c Algorithms.cpp Optimization.o: Optimization.h Optimization.cpp Algorithms.h parameters.h probabilities.h RNGUtilities.h ThreadData.h IOUtilities.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c Optimization.cpp probabilities.o: probabilities.h probabilities.cpp parameters.h g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c probabilities.cpp RNGUtilities.o: RNGUtilities.h RNGUtilities.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c RNGUtilities.cpp Data.o: Data.h Data.cpp g++ $(CXXFLAGS) $(CXX_LDFLAGS) -c Data.cpp,c++,compiler-construction,linker,makefile,C++,Compiler Construction,Linker,Makefile,错误是: g++ -I/home/schraiber/.local/include -L/home/schraiber/.local/lib -lgsl -lm -lgslcblas -lpthread main.o IOUtilities.o parameters.o Algorithms.o Optimization.o probabilities.o RNGUtilities.o Data.o -o CoalHMMgf main.o: In function `main': main.cp

错误是:

g++ -I/home/schraiber/.local/include -L/home/schraiber/.local/lib -lgsl -lm -lgslcblas -lpthread main.o IOUtilities.o parameters.o Algorithms.o Optimization.o probabilities.o RNGUtilities.o Data.o -o CoalHMMgf
main.o: In function `main':
main.cpp:(.text+0xbf1): undefined reference to `pthread_create'
main.cpp:(.text+0xd0e): undefined reference to `pthread_join'
Optimization.o: In function `my_df(gsl_vector const*, void*, gsl_vector*)':
Optimization.cpp:(.text+0x3149): undefined reference to `gsl_vector_alloc'
Optimization.cpp:(.text+0x316b): undefined reference to `gsl_vector_get'
Optimization.cpp:(.text+0x3180): undefined reference to `gsl_vector_set'
Optimization.cpp:(.text+0x31bc): undefined reference to `gsl_vector_get'
Optimization.cpp:(.text+0x31ec): undefined reference to `gsl_vector_set'
Optimization.cpp:(.text+0x323b): undefined reference to `gsl_vector_set'
Optimization.cpp:(.text+0x327e): undefined reference to `gsl_vector_set'
Optimization.cpp:(.text+0x32c9): undefined reference to `gsl_vector_set'
Optimization.o: In function `MHthreaded(void*)':
Optimization.cpp:(.text+0x3489): undefined reference to `gsl_rng_env_setup'
Optimization.cpp:(.text+0x3490): undefined reference to `gsl_rng_default'
Optimization.cpp:(.text+0x360b): undefined reference to `gsl_rng_uniform'
Optimization.cpp:(.text+0x3653): undefined reference to `gsl_ran_gaussian'
Optimization.cpp:(.text+0x3686): undefined reference to `gsl_ran_gaussian'
Optimization.cpp:(.text+0x377f): undefined reference to `gsl_rng_uniform'
RNGUtilities.o: In function `AllocRNG(gsl_rng*&, gsl_rng_type const*, int)':
RNGUtilities.cpp:(.text+0x9a): undefined reference to `gsl_rng_alloc'
RNGUtilities.cpp:(.text+0xba): undefined reference to `gsl_rng_set'
RNGUtilities.o: In function `FreeRNG(gsl_rng*&)':
RNGUtilities.cpp:(.text+0xe3): undefined reference to `gsl_rng_free'
collect2: ld returned 1 exit status
make: *** [CoalHMMgf] Error 1
为了验证gsl是否安装在本地目录中:

schraiber@trump:~/test_rsync$ ls ~/.local/lib
libbpp-core.a     libbpp-core.so.2.0.0  libbpp-seq.so.9      libgslcblas.a   libgslcblas.so.0      libgsl.so         pkgconfig
libbpp-core.so    libbpp-seq.a          libbpp-seq.so.9.1.0  libgslcblas.la  libgslcblas.so.0.0.0  libgsl.so.0       python2.7
libbpp-core.so.2  libbpp-seq.so         libgsl.a             libgslcblas.so  libgsl.la             libgsl.so.0.16.0
schraiber@trump:~/test_rsync$ ls ~/.local/include/
Bpp  gsl

需要注意的一件有趣的事情是,我的程序也应该链接到Bpp,而且据我所知,它做得很好。

必须在链接行上定义库,这样不包含其他引用的库就是最后一个库。依赖于第二个库的代码的库需要首先列出。它们必须列在.o文件之后,否则.o文件被认为是自包含的,不需要库。

您的“-lfoo”参数应该位于“g++”命令行的最后。例如,在makefile中进行以下更改:

CoalHMMgf: main.o IOUtilities.o parameters.o Algorithms.o Optimization.o probabilities.o RNGUtilities.o Data.o ThreadData.h
        g++ $(CXXFLAGS) main.o IOUtilities.o parameters.o Algorithms.o Optimization.o probabilities.o RNGUtilities.o Data.o -o CoalHMMgf $(CXX_LDFLAGS) 

哪个库文件包含
gsl\u vector
?不,这不起作用:(。此外,如果这是问题所在,为什么它以前会编译(就像一周前一样,这个完全相同的东西可以在服务器上编译)?更新….o文件需要在-l标志之前。pthread错误应该第一次引起我的注意,因为这肯定表明排序是错误的,因为它不应该是缺少的引用,因为它独立于其他库。哇,这很有效!我想知道为什么它以前编译过,尽管有错误的语法?我猜是宇宙的奥秘。谢谢!