m******g 发帖数: 91 | 1 看gentoo网上提供的说明,需要对/etc/make.conf进行配置,
让gcc针对特定的CPU进行编译优化。
好的。我的机器是pentium 233MHz MMX,
因此我改动/etc/make.conf为:
CHOST="i586-pc-linux-gnu"
CFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"
可是在执行kernel编译时,出现的却是:
gcc -D__KERNEL__ -I/usr/src/linux-2.4.20-gentoo-r5/include -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing
-fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2
-march=i686 -DKBUILD_BASENAME=main -c -o init/main.o init/main.c
是针对i |
|
l***y 发帖数: 4671 | 2 为了避免 copy 大数组 (实际运算是 1000-by-1000,并且大量重复访问),想用个指针
来指向它。
int main () {
static int A[10][10][10];
static int B[10][10][10];
static int C[10][10][10];
A[1][2][3] = 123;
B[1][2][3] = 1230;
C[1][2][3] = 12300;
int (*p)[10][10][10]; // line a
char cFlag;
cin >> cFlag;
while (cFlag == 'A' || cFlag == 'B' ||cFlag == 'C') {
switch (cFlag) {
case 'A':
p = &A;
break;
case 'B':
p = &B;
break;
case 'C':
p = &C;
break;
}
printf(... 阅读全帖 |
|
b*****l 发帖数: 9499 | 3 阶段性胜利了:在 .c 下面,makefile 和 omp_set_num_threads 管用,num_threads
不管用。在 .cpp 下面,omp_set_num_threads 和 num_threads 管用,makefile 不管
用(所以只好写了个 bash script)。。。
大家帮我看看我的 makefile 哪里出错了吧。一个叫做 CMakefile,一个叫做
Makefile,code 一样(除了指向的文件名),结果不一样,后者的 g++ 后面多了些空
格,最后少了一堆参数。。。
$ make -f CMakefile
gcc -c -o CTestOMP.o CTestOMP.c -I. -g -O -fopenmp
gcc -o CTestOMP CTestOMP.o -I. -g -O -fopenmp -lm
$ make -f Makefile
g++ -c -o TestOMP.o TestOMP.cpp
g++ -o TestOMP TestOMP.o -I. -g -O -fopenmp -Wall -lm
##############... 阅读全帖 |
|
o*****e 发帖数: 23 | 4 【 以下文字转载自 Programming 讨论区,原文如下 】
发信人: oldbare (bearhill), 信区: Programming
标 题: My makefile can not work, why?
发信站: The unknown SPACE (Sun Apr 7 15:15:57 2002) WWW-POST
Here is my make file:
# makefile for phase 1
CC = gcc
CFLAGS = -g
OBJS = TestLexan.o lexan.o
TestLexan.o : TestLexan.c gloabls.h
$(CC) $(CFLAGS) -c TestLexan.c
lexan.o : lexan.c lexan.h gloabls.h
$(CC) $(CFLAGS) -c lexan.c
TestL.exe: $(OBJS)
$(CC) $(CFLAGS) -eTestL $(OBJS)
After running it, there is the message:
bash: ./makefile |
|
b******h 发帖数: 71 | 5 【 以下文字转载自 Programming 讨论区 】
【 原文由 birdfish 所发表 】
MAKE = make
do_make:
@for dir in $(DIRS); do \
(cd $$dir; \
echo Making $$dir ...; \
${MAKE} CC=$(CC) 'CFLAGS=$(CFLAGS) $(INCLUDE)' SIS=$(SIS) CADROOT
=$(CADROOT) CAD=$(CAD) lib$$dir.a)\
done
上面是一个makefile文件片断,但是欧不太懂${MAKE}的{}是干什么用的,
'CFLAGS=$(CFLAGS) $(INCLUDE)'的引号是干什么用的? |
|
R*******y 发帖数: 19 | 6 以下是我的makefile文件:
TARGETS=server client
TARGET_O=server.o client.o
CC=gcc
cFlags=-Wall -D __REENTRANT
lFlags=-Wall -lpthread -lnsl
.PHONY: all clean
all : $(TARGETS)
server : server.o
$(CC) $(lFlags) -o server server.o alg.o
client : client.o
$(CC) $(lFlags) -o client client.o alg.o
server.o : server.c swp.h crc.h function.h
$(CC) $(cFlags) -c server.c
congctrlserver : server.c swp.h crc.h function.h
$(CC) $(cFlags) -c server.c -DCONGCTRL
client.o : client.c c_crc.h c_common.h c_f |
|
t**c 发帖数: 97 | 7
CC = cc
CFLAGS = -Lpath -llibraryname ...
dummy:
$(CC) $(CFLAGS) .... -o dummy .....
# An example to make your program with C. |
|
|
a*****i 发帖数: 4391 | 9 How can I change a $CFLAGS from "blahblah -O2 blahblah" to "blahblah -O1
blahblah"? |
|
p****s 发帖数: 32405 | 10 hmm, 我从来都在makefile里直接改这个, bash里也有CFLAGS? |
|
a9 发帖数: 21638 | 11 自己写的代码。用了libcurl什么的。
好像是gcc 4.6.1的问题? 我把 -l弄到 -o后边 -I去掉 就行了。
我是新手,呵呵。原来网上找了个东东,写了些$(CFLAG)= .... -Ixxxx -lxxxx什么的
。老版本下没问题,到了ubuntu 11.10下就不行了。 |
|
a**u 发帖数: 7128 | 12 [Parsed_ass_0 @ 0x80ae2e7a0] Glyph 0x2B2 not found, selecting one more font
for (Arial, 80, 0)
seems it is missing the fonts. How do I tell ffmpeg what font to use?
-----------------------------------
ffmpeg1 -i Farewell.mkv -sameq -vcodec libx264 -threads 26 -y -vf ass=a.
ass fare.mp4
ffmpeg version 1.0.5 Copyright (c) 2000-2012 the FFmpeg developers
built on May 28 2013 19:38:07 with gcc 4.2.2 (GCC) 20070831 prerelease [
FreeBSD]
configuration: --enable-x11grab --prefix=/usr/local --man... 阅读全帖 |
|
g****c 发帖数: 299 | 13 # [Q: What does the following do? ]
link object file with lib if it exists
$(COMMAND): $(OBJS) $(MAKEFILE)
$(CC) -o $(COMMAND) $(OBJS) $(LDFLAGS) $(LIBS)
# [Q: What is LIBS? ]
I don't see LIBS defined
# [Q: What does the following do? ]
sum_up_down.o : sum_up_down.cpp $(MAKEFILE)
$(CC) $(CFLAGS) $(WARNFLAGS) -c sum_up_down.cpp -o sum_up_down.o
compile to object file
following |
|
d******n 发帖数: 83 | 14 我知道问题一定是非常愚昧的,因为甚至google不到,被嘲笑也没法了。如果哪位高手
有耐心,请指点一下。:-p
makefile里面,经常看到用-D来specify flags,这是什么语法?我google "makefile
+ -D"找不到任何说明。
另外,好像通过CFLAGS能够define一些flags,在程序里面(c++)里面可以用(#ifdef
flags...),这又是什么道理呢?
谢谢。 |
|
d****n 发帖数: 1637 | 15 in Makefile
you can do
obj/%.o: src/%.c
[ Tab here ]gcc $(CFLAGS) -c $? -o $@
also you can do it in linux shell
mkdir -p obj
for i in *c; do gcc -c $i -o obj/`basename $i|sed 's/.c$/.o/g'`;done |
|
w***g 发帖数: 5958 | 16 开源的无所谓。如果你不想开源,或者客户没有下载源程序运行make的能力,那么我的
建议是centos 5.6,至少用vagrant之类的搞个centos 5.6做编译。这样基本上保证了
编译出来的二进制程序在哪儿都能跑。还有toolchain得花心思弄一下。网上可以弄到
gcc-4.7的yum respository,剩下各种自己依赖的library最好都用--enable-static -
-disable-shared外加export CFLAGS=-fPIC编译。这样可以弄出来静态编译的动态链接
库。很多环境,像java /python/matlab等和C++接口都需要你提供动态链接库,但是如
果你的动态链接库如果静态链接自带各种库的话能省很多事。不过Linux底下的静态链
接有一个问题,就是getaddrinfo/gethostbyname在静态链接的情况下没有解析域名的
能力,只能接受IP地址。如果程序需要域名解析,那libc还是只能动态链接。
新版本的ubuntu用户界面极其傻x。不过xubuntu挺不错。
我其实很惊异于我接触的那些公司(都有自己的机房)都还在用cento... 阅读全帖 |
|
d****i 发帖数: 4809 | 17 Your Makefile doesn't obey the Makefile convention: You should use CC or CXX
in place of CPP, should be CFLAGS in place of OFLAG, should be LDFLAGS
instead of LFLAG, "-I" flag should be used in conjunction with -I${LOCAL_
INCLUDE_PATH}. rule target should be the object or executable file rather
than src file... |
|
o*****l 发帖数: 539 | 18 How to include a library using cmake?
======================================
For example, I want to use glib2,
Install:
$ sudo yum install glib2-devel
Then in cpp file,
#include
compile:
g++ `pkg-config --cflags --libs glib-2.0` test.cpp
======================================================
How to do it using cmake?
Thanks! |
|
w*******o 发帖数: 32 | 19 add -I/usr/include/X11 to CFLAGS in Makefile
/usr/include/X11 could be /usr/X11R6/include or whatever appropriate
on your system |
|
c********e 发帖数: 417 | 20 那个make.conf是不管你编译kernel的.
kernel的CPU type你还是得改 .config |
|
m******g 发帖数: 91 | 21 thx. you are absolutely correct. I've made up a working gentoo now.:D
thx |
|
J*****n 发帖数: 48 | 22 已经setup了环境:
source /usr/local/vni/CTT6.0/ctt/bin/cttsetup.csh
准备编译一个简单的C程序 a.c,里边调用了imsl fortran library
里的两个子程序,程序如下
#include
#include
//copied from some website...
main()
{
extern void rnnoa_();
extern float anordf_();
long int nr=5;
float r[5], p, x;
float one=1.0;
float zero = 0.0;
rnnoa_(&nr, r);
printf ("%f \n", r[0]);
x = .3;
p = anordf_ (&x);
printf ("%f \n", p);
}
gcc -c a.c $CFLAGS 通过
gcc -o a.out a.o $ |
|
h**f 发帖数: 149 | 23 刚装上CUDA2.0 Toolkit 和 SDK,原来的问题解决了,但又有新问题
Cuda for Matlab 1.1
Matlab R2008A
Linux- Ubuntu 8.04
>> unix('make');
/usr/local/matlab/bin/mex CFLAGS='-fPIC -D_GNU_SOURCE -pthread -fexceptions'
COPTIMFLAGS='-O3 -funroll-loops -msse2' fft2_cuda.c \
-I/usr/local/cuda/include -L/usr/local/cuda/lib -lcufft -Wl,-rpath,/
usr/local/cuda/lib
Warning: You are using gcc version "4.2.3". The earliest gcc version
supported
with mex is "4.0.0". The latest version tested for use with mex is
"4.2. |
|