Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.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++;不';我不认识这个选项-wl_C++_Ubuntu_Gcc_Makefile - Fatal编程技术网

C++ g++;不';我不认识这个选项-wl

C++ g++;不';我不认识这个选项-wl,c++,ubuntu,gcc,makefile,C++,Ubuntu,Gcc,Makefile,我正在使用gcc版本4.7.2开发Ubuntu12.10 我正在尝试生成以下生成文件: CC = g++ CCFLAGS = -fPIC -O3 -Wall -ffast-math -msse -msse2 -fopenmp LINKFLAGS = -shared -Wl -fopenmp -lgomp INPUT = im2col.cpp fastpool.cpp local_response_normalization.cpp neuron.cpp TARGET = libcpputil.

我正在使用gcc版本4.7.2开发Ubuntu12.10

我正在尝试生成以下生成文件:

CC = g++
CCFLAGS = -fPIC -O3 -Wall -ffast-math -msse -msse2 -fopenmp
LINKFLAGS = -shared -Wl -fopenmp -lgomp

INPUT = im2col.cpp fastpool.cpp local_response_normalization.cpp neuron.cpp
TARGET = libcpputil.so

# If we are going to use MKL, we include additional flags
MKL_FLAGS = -D DECAF_USE_MKL
MKL_LINK_FLAGS = -lmkl_rt

all: $(INPUT)
    $(CC) -c $(CCFLAGS) $(INPUT)
    $(CC) $(LINKFLAGS) -o $(TARGET) *.o
all_mkl: $(INPUT)
    $(CC) -c $(CCFLAGS) $(MKL_FLAGS) $(INPUT)
    $(CC) $(LINKFLAGS) $(MKL_LINK_FLAGS) -o $(TARGET) *.o
speedtest_lrn: speedtest_lrn.cpp local_response_normalization.cpp
    $(CC) $(CCFLAGS) -lgomp -o speedtest_lrn speedtest_lrn.cpp local_response_normalization.cpp
clean:
    rm *.so
    rm *.o
但是不知怎么的,g++没有识别选项-wl。下面是我得到的错误:

make -C layers/cpp/
make[1]: Entering directory `/home/ubuntu/decaf-release-master/decaf/layers/cpp'
g++ -c -fPIC -O3 -Wall -ffast-math -msse -msse2 -fopenmp im2col.cpp fastpool.cpp local_response_normalization.cpp neuron.cpp
g++ -shared -Wl -fopenmp -lgomp -o libcpputil.so *.o
g++: error: unrecognized command line option ‘-Wl’
make[1]: *** [all] Error 1
make[1]: Leaving directory `/home/ubuntu/decaf-release-master/decaf/layers/cpp'
make: *** [all] Error 2
Failed to build the C libraries; exiting
编辑:当我尝试删除“-wl”时,我得到:

当我在Ubuntu12.04和GCC4.7.7上试用它时,它不知怎么地起了作用

有人能解释一下是什么问题吗?我该如何解决

谢谢, Gil.

来自手册:

-选择权 将选项作为选项传递给链接器。如果选项包含逗号,则在逗号处将其拆分为多个选项。你可以用这个 将参数传递给选项的语法。例如 -Wl,-Map,output.Map将-Map output.Map传递到链接器。当使用GNU链接器时,您也可以使用 -Wl,-Map=output.Map


因此,您错过了-Wl的选项。

我不记得将
-Wl
视为选项。它的意思是什么,你为什么要通过它?+1很高兴知道;这是如果有人感兴趣的话。同样地,
-Wp,option
用于预处理器,
-Wa,option
用于汇编程序。谢谢您的回答。我从下载的软件包中得到了这个makefile。只是删除-Wl是一样的吗?尝试删除它。。。如果它的表现不如预期,请回到这里:)我们会解决它!谢谢,我试图删除它,但它不起作用,请查看对我问题的编辑。嗯,第二个错误与make和gcc无关,它与您尝试运行的软件包附带的
setup.py
有关。你的编译成功了。
ubuntu@ubuntu-VirtualBox:~/decaf-release-master$ python setup.py 
make -C layers/cpp/
make[1]: Entering directory `/home/ubuntu/decaf-release-master/decaf/layers/cpp'
g++ -c -fPIC -O3 -Wall -ffast-math -msse -msse2 -fopenmp im2col.cpp fastpool.cpp local_response_normalization.cpp neuron.cpp
g++ -shared -fopenmp -lgomp -o libcpputil.so *.o

make[1]: Leaving directory `/home/ubuntu/decaf-release-master/decaf/layers/cpp'
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help

error: no commands supplied